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/

相关文章:

java - PopBackStack 前一个最后一个 fragment 并检查它是哪个 fragment

android - fragment onResume() 和 backStack 问题

安卓服务器;登录页面

android - 我可以检索 Android 和 IOS 应用程序上的 Google Analytics 事件计数以在我的应用程序中显示吗?

android - API 驱动的应用程序 - 嵌套 fragment - 在哪里进行 API 调用? onStart 与 onResume 上的 onCreateView

java - 创建 YouTubePlayerView 时出错

android - 如何在修改数组后更新 ListView 中的项目

android - Backstack android fragment 导航

java - 如何在android中制作文件的副本?

java - 为什么 JUnit 找不到我的测试?