Android ActoinBar homeAsUp 只工作一次
Android ActoinBar homeAsUp only works once
我正在开发一个应用程序,它只使用一个 Activity 并根据导航抽屉的需要切换片段。
现在我们要使用 ActionBar 中的 homeAsUp 按钮从这些片段之一导航回来。
我已按照所有步骤设置按钮。从禁用导航抽屉 setDrawerIndicatorEnabled(false)
到在片段的 onCreateView()
中调用 setDisplayHomeAsUpEnabled(true)
。
我还在 MainActivity 的 onCreate()
中设置了 setHomeButtonEnabled(true)
,但是因为该应用程序已经在 MainActivity 中,我们无法指定父级 Activity。
每当我 运行 全新安装该应用程序时,homeAsUp 按钮都会工作并在 onBackPressed()
而不是 onOptionsItemSelected()
方法中注册。但是,当我关闭应用程序并再次 运行 时,按钮甚至没有注册点击。
在onBackPressed()
中我检查了一些条件,但它不会阻止按钮按下。
在 onOptionsItemSelected()
我检查 android.R.id.home
.
不幸的是,我不能post代码。
这个 post 描述了我正在努力实现的目标:Switching between Android Navigation Drawer image and Up caret when using fragments
我设法解决了我遇到的问题。这是一个非常简单的错误。
因为我不是这段代码的原作者,所以我彻底检查了 MainActivity。
原来作者在onCreate
函数中调用了setDisplayHomeAsUpEnabled
(超长),但是临近尾声他又调用了setSupportActionBar
,第一次调用了[=10] =]没用。 将 setDisplayHomeAsUpEnabled
移动到 setSupportActionBar
下面解决了我的问题。
如果您做的一切都正确,请确保您的代码以正确的顺序编写。
此外,如果您在其他片段中使用自定义工具栏,请记住通过在 MainActivity 的 onResume
中调用 setSupportActionBar(toolbar.find(this))
来设置您的原始支持操作栏。
我正在开发一个应用程序,它只使用一个 Activity 并根据导航抽屉的需要切换片段。 现在我们要使用 ActionBar 中的 homeAsUp 按钮从这些片段之一导航回来。
我已按照所有步骤设置按钮。从禁用导航抽屉 setDrawerIndicatorEnabled(false)
到在片段的 onCreateView()
中调用 setDisplayHomeAsUpEnabled(true)
。
我还在 MainActivity 的 onCreate()
中设置了 setHomeButtonEnabled(true)
,但是因为该应用程序已经在 MainActivity 中,我们无法指定父级 Activity。
每当我 运行 全新安装该应用程序时,homeAsUp 按钮都会工作并在 onBackPressed()
而不是 onOptionsItemSelected()
方法中注册。但是,当我关闭应用程序并再次 运行 时,按钮甚至没有注册点击。
在onBackPressed()
中我检查了一些条件,但它不会阻止按钮按下。
在 onOptionsItemSelected()
我检查 android.R.id.home
.
不幸的是,我不能post代码。
这个 post 描述了我正在努力实现的目标:Switching between Android Navigation Drawer image and Up caret when using fragments
我设法解决了我遇到的问题。这是一个非常简单的错误。
因为我不是这段代码的原作者,所以我彻底检查了 MainActivity。
原来作者在onCreate
函数中调用了setDisplayHomeAsUpEnabled
(超长),但是临近尾声他又调用了setSupportActionBar
,第一次调用了[=10] =]没用。 将 setDisplayHomeAsUpEnabled
移动到 setSupportActionBar
下面解决了我的问题。
如果您做的一切都正确,请确保您的代码以正确的顺序编写。
此外,如果您在其他片段中使用自定义工具栏,请记住通过在 MainActivity 的 onResume
中调用 setSupportActionBar(toolbar.find(this))
来设置您的原始支持操作栏。