我想根据当前的backstack条目计数显示或隐藏操作栏的后退按钮。这意味着当backstack中有一个片段(或更多)时,我想显示它,当backstack为空时隐藏它
getSupportActionBar().setDisplayHomeAsUpEnabled(b);
问题是,当我开始一个新的片段并请求当前的backstack条目计数时,它仍然像以前一样。在几毫秒后刷新。
同样在开始的片段的onResume方法中,被替换的片段仍然无法在backstack中找到,backstack计数仍然相同。
目前我有一个AsyncTask在50毫秒后刷新按钮。可以,但这不是个好办法。
任何想法?
问好编辑:
解为
fragmentManager.addOnBackStackChangedListener(...)
不需要AsyncTask
,你已经有了一个Backstack
接口,当Fragment被添加或删除时,它会触发onBackStackChangeListener
,所以不是调用它,而是调用getBackstackEntryCount()
,如果它不是0,那么你知道你要做什么
当我开始一个新的片段并请求当前backstack条目计数时,它仍然和
之前一样
您需要在add()
或replace()
调用FragmentTransaction
之后将您的事务添加到Backstack
,如.addToBackstack("the identifier")
一些间接帖子
希望有所帮助