【发布时间】:2017-07-25 14:14:13
【问题描述】:
我有一个 AppCompatActivity 和一个带有后退按钮的 ActionBar。我正在启动一个内部 Fragment 类,它在 Activity 视图顶部打开一个视图。硬件后退按钮关闭 Fragment,Activity 视图可见。但是,如果我在 Fragment 视图中按下 ActionBar 上的后退按钮,应用程序将返回到 MainActivity,即活动父级。我想隐藏 ActionBar,或者理想情况下给它与硬件按钮相同的行为,因为这对用户来说显然是烦人的行为。我尝试在我的 Activity 中创建 ActionBar 的实例,就像这样
ActionBar actionBar = getActionBar();
actionBar.setHomeAsUpEnabled(true);
这在运行时给了我一个NullPointerException。我已经搜索并被难住了。
也试过这个,mFragmentManager 在开始与我的 Fragment 类的事务之前有 .addToBackStack()。
@Override
public void onBackPressed() {
int count = mFragmentManager.getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
//additional code
} else {
mFragmentManager.popBackStack();
}
Log.i(LOG_TAG, "onBackPressed. Count = " + count);
}
~没有错误,但 ActionBar 后退按钮的行为没有改变。没有记录日志信息~
我的错误,这种方法确实改变了行为,但对于硬件后退按钮。当尝试在mFragmentManager 上使用getBackStackCount() 时,它会导致NullPointerException。
【问题讨论】:
标签: java android android-fragments android-actionbar