我想知道片段何时从后台弹出。
我的代码如下
private void setupChildFragmentPopListener() {
getChildFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
// Do whatever I want
}
});
}
但是,这个代码在add和pop片段时都被触发了。我怎么能有办法只听流行片段?或者在onBackStackChanged()
函数中过滤掉它的方法,如果它不是pop?
答案 0 :(得分:3)
每次调用onBackStackChanged()
时,您都可以记录后台条目的数量并进行比较。
private void setupChildFragmentPopListener() {
getChildFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
int backCount = getChildFragmentManager().getBackStackEntryCount();
}
});
}
答案 1 :(得分:0)
对于Kotlin爱好者:
supportFragmentManager.addOnBackStackChangedListener {
if (supportFragmentManager.backStackEntryCount == 0) {
fab.visibility = VISIBLE
}
// Other magic
}