首页 > 解决方案 > 旋转后工具栏后退按钮不起作用

问题描述

我有一个带有多个片段的单个活动应用程序。我将androidx.appcompat.widget.Toolbarin 与我的片段一起使用。当我浏览我的应用程序时

主视图->片段1->片段2->工具栏后按->片段1->工具栏后按->主视图

没有问题,但如果我改变方向,后退按钮不再适用于片段 1:

主视图 -> 片段 1 -> 片段 2 -> 方向更改 -> 工具栏后按 -> 片段 1 -> 工具栏后按 -> 没有任何反应

在我的片段中,我在onViewCreated方法中设置了工具栏

val activity: AppCompatActivity? = activity as AppCompatActivity
val toolbar: Toolbar = view.findViewById(R.id.toolbar)

activity?.setSupportActionBar(toolbar)

activity?.supportActionBar?.setDisplayHomeAsUpEnabled(true)
activity?.supportActionBar?.setDisplayShowHomeEnabled(true)

在 mainActivity 我处理点击

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return when (item.itemId) {
        android.R.id.home -> {
            onBackPressed()
            true
        }
        else -> super.onOptionsItemSelected(item)
    }
}

override fun onBackPressed() {
    if (supportFragmentManager.backStackEntryCount == 0) {
        finish()
    } else {
        hideKeyboard()
        supportFragmentManager.popBackStack()
    }
}

但在旋转更改后它不会在片段 1 上被调用

标签: androidkotlinandroid-fragments

解决方案


推荐阅读