Как вернуться от фрагмента к активности с помощью панели инструментов - PullRequest
0 голосов
/ 28 декабря 2018

В MainActivity с меню я открываю FavoriteFragment, я хочу вернуться с панелью инструментов setDisplayHomeAsUpEnabled()

в шутку onOptionsItemSelected:

 R.id.favorite -> {
        fragmentManager = supportFragmentManager
        val mainFragment: FavoriteFragment = FavoriteFragment().newInstance()
        fragmentManager!!.beginTransaction().replace(R.id.frameLayout, mainFragment)
            .addToBackStack("FAVORITE_FRAGMENT").commit()

        true
    }

и в шуткуonBackPressed

    override fun onBackPressed() {
    if (supportFragmentManager.findFragmentByTag("FAVORITE_FRAGMENT") != null) {
        supportFragmentManager.popBackStackImmediate("FAVORITE_FRAGMENT", 0);
    } else {
        super.onBackPressed();
    }

}

В Моем фрагменте я создаю забаву showBackButton:

fun showBackButton() {
    if (activity is MainActivity) {
        (activity as MainActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)

    }
}

Физическая кнопка возврата работает, но панель инструментов назад не работает

1 Ответ

0 голосов
/ 28 декабря 2018

Вы можете попробовать этот фрагмент.(Извините за код Java, я не знаю, kotlin, вы должны вручную конвертировать его)

@Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case android.R.id.home:
                // ProjectsActivity is my 'home' activity
                super. onBackPressed();
                return true;
        }
        return (super.onOptionsItemSelected(menuItem));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...