如何只听 Fragment Backstack Pop?
How to listen to Fragment Backstack Pop only?
我想知道片段何时从后台弹出。
我的代码如下
private void setupChildFragmentPopListener() {
getChildFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
// Do whatever I want
}
});
}
但是,这段代码在添加和弹出片段时都会被触发。我怎么能有办法只听 pop fragment 呢?或者在onBackStackChanged()
函数中过滤掉不pop的方法?
您可以对后台堆栈条目进行计数,并在每次调用 onBackStackChanged()
时进行比较。
private void setupChildFragmentPopListener() {
getChildFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
int backCount = getChildFragmentManager().getBackStackEntryCount();
}
});
}
Kotlin 爱好者:
supportFragmentManager.addOnBackStackChangedListener {
if (supportFragmentManager.backStackEntryCount == 0) {
fab.visibility = VISIBLE
}
// Other magic
}
我想知道片段何时从后台弹出。
我的代码如下
private void setupChildFragmentPopListener() {
getChildFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
// Do whatever I want
}
});
}
但是,这段代码在添加和弹出片段时都会被触发。我怎么能有办法只听 pop fragment 呢?或者在onBackStackChanged()
函数中过滤掉不pop的方法?
您可以对后台堆栈条目进行计数,并在每次调用 onBackStackChanged()
时进行比较。
private void setupChildFragmentPopListener() {
getChildFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
int backCount = getChildFragmentManager().getBackStackEntryCount();
}
});
}
Kotlin 爱好者:
supportFragmentManager.addOnBackStackChangedListener {
if (supportFragmentManager.backStackEntryCount == 0) {
fab.visibility = VISIBLE
}
// Other magic
}