android - 如何确定 Fragment 何时在 ViewPager 中可见

标签 android android-fragments android-viewpager

问题:ViewPager 中的 fragment onResume() 在 fragment 实际可见之前被触发。

例如,我有 2 个 fragment ,分别是 ViewPagerFragmentPagerAdapter。第二个 fragment 仅适用于授权用户,我需要在 fragment 可见时要求用户登录(使用警报对话框)。

但是 ViewPager 在第一个 fragment 可见时创建第二个 fragment ,以便缓存第二个 fragment 并在用户开始滑动时使其可见。

所以 onResume() 事件早在第二个 fragment 变得可见之前就在第二个 fragment 中触发了。这就是为什么我试图找到一个在第二个 fragment 可见时触发的事件,以便在适当的时候显示一个对话框。

如何做到这一点?

最佳答案

How to determine when Fragment becomes visible in ViewPager

您可以通过在 Fragment 中覆盖 setUserVisibleHint 来执行以下操作:

public class MyFragment extends Fragment {
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
        }
        else {
        }
    }
}

关于android - 如何确定 Fragment 何时在 ViewPager 中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10024739/

相关文章:

android - 工具栏布局未定义

android - DatePickerDialog 标题背景颜色

android - 在 Android 上的 Firefox 中删除默认输入内部阴影

android - getArgument() 返回 NULL

android - 带有 map 自定义 fragment 的 Robolectric 3.0 InflateException

Android:PagerAdapter 的 setPrimaryItem() 被多次调用

android - javax.net.ssl.SSLHandshakeException : No enabled protocols

java - 如何暂停/恢复使用 mediarecorder 创建的录音?

android - 平板电脑的图库 View

android - 如何在 Android 的 View 寻呼机页面中使用滑动手势?