我所需要的正是用于特定 fragment 的 onResume
方法(因为它适用于 Activity )。我正在将 fragment (假设 fragment A)添加到后堆栈,并从 fragment A 打开另一个 fragment ( fragment B)(再次添加到后堆栈)。我想在 fragment B 关闭且 fragment A 关闭时更新工具栏再次出现在屏幕上。我希望 onCreateView
被调用,但是当我弹出 fragment B 时它没有被调用。我还尝试将 OnBackStackChangedListener
添加到 fragment A 但后来我无法跟踪哪个 fragment 在返回堆栈更改时的屏幕。
所以我的问题是如何在我返回 fragment A 时调用 onCreateView
。如果这不是一个好的做法,我还能如何跟踪此事件?
编辑
我正在用这段代码展示新 fragment :
getSupportFragmentManager().beginTransaction()
.add(R.id.content, fragment)
.addToBackStack(tag)
.commit();
我是否应该以某种方式更改它以使 onCreateView
被调用?由于我在 现有 fragment A 上添加新 fragment B(当 B 在屏幕上时,我什至可以单击 fragment A 中的按钮),当我弹出 fragment B 时, fragment 没有任何变化A的情况。
最佳答案
在Fragment中覆盖这个方法并检查 bool 值
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
//Log.e("setUserVisibleHint", "isVisibleToUser " + isVisibleToUser);
}
根据 isVisibleToUser bool 值,将每当 fragment 可见/隐藏时需要执行的代码放入此方法中
关于android - 当 fragment 出现在屏幕上时如何收听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620241/