android - 当 fragment 出现在屏幕上时如何收听

标签 android android-fragments fragment-backstack

我所需要的正是用于特定 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/

相关文章:

Android:更多滚动问题

android - IntentService <-> Activity 通信

android - 在 ViewPager 中使用具有相同布局的不同 fragment

android - 防止同一 fragment 多次堆叠 (addToBackStack)

android - 等效于 FrameLayout 的 Xamarin.Forms 布局

java - 关于序列化、serialVersionUID、类不兼容

java - 当ListView的Item被选中时如何关闭抽屉导航?

android - 风格 PreferenceFragmentCompat 像 PreferenceFragment?

android - PopBackStack 但在 android 中保留第一个 fragment

android - 单击背景中的 fragment 时返回堆栈计数增加