Android 根据 backstack 计数显示后退按钮
Android show back button depending on backstack count
我想根据当前的后台堆栈条目数显示或隐藏操作栏的后退按钮。这意味着我想在 backstack 中有片段(或更多)时显示它,并在 backstack 为空时隐藏
getSupportActionBar().setDisplayHomeAsUpEnabled(b);
问题是,当我开始一个新片段并询问当前的backstack 条目计数时,它仍然和以前一样。它会在几毫秒后刷新。
同样在start fragment的onResume方法中,在backstack中仍然找不到被替换的fragment,backstack count还是一样。
目前我有一个 AsyncTask,它会在 50 毫秒后刷新按钮。有效,但这不是一个好的解决方案。
有什么想法吗?
此致
编辑:
解决方案是
fragmentManager.addOnBackStackChangedListener(...)
不需要 AsyncTask
你已经有一个 Backstack
接口,当添加或删除 Fragment 时会触发 onBackStackChangeListener
所以不要调用实现它并调用 getBackstackEntryCount()
如果它不是 0 那么你知道你会做什么
hen I start a new fragment and ask for the current backstack entry count, it's still the same like before
您需要在 add()
或 replace()
调用您的 FragmentTransaction
之后将您的交易添加到 Backstack
,例如 .addToBackstack("the identifier")
some indirect post
希望对您有所帮助
我想根据当前的后台堆栈条目数显示或隐藏操作栏的后退按钮。这意味着我想在 backstack 中有片段(或更多)时显示它,并在 backstack 为空时隐藏
getSupportActionBar().setDisplayHomeAsUpEnabled(b);
问题是,当我开始一个新片段并询问当前的backstack 条目计数时,它仍然和以前一样。它会在几毫秒后刷新。
同样在start fragment的onResume方法中,在backstack中仍然找不到被替换的fragment,backstack count还是一样。
目前我有一个 AsyncTask,它会在 50 毫秒后刷新按钮。有效,但这不是一个好的解决方案。
有什么想法吗?
此致
编辑:
解决方案是
fragmentManager.addOnBackStackChangedListener(...)
不需要 AsyncTask
你已经有一个 Backstack
接口,当添加或删除 Fragment 时会触发 onBackStackChangeListener
所以不要调用实现它并调用 getBackstackEntryCount()
如果它不是 0 那么你知道你会做什么
hen I start a new fragment and ask for the current backstack entry count, it's still the same like before
您需要在 add()
或 replace()
调用您的 FragmentTransaction
之后将您的交易添加到 Backstack
,例如 .addToBackstack("the identifier")
some indirect post
希望对您有所帮助