在我的应用程序中,我有一个ViewPager,其中包含许多带有Fragments的可滑动Tabs . 我使用 setUserVisibleHint
方法来检测 Fragment
何时进入屏幕 . 当用户在选项卡之间滑动但在第一次加载时它不起作用时,这非常有效 . 要在方法中运行代码,我必须向左滑动然后再回到第一个 Fragment
,因为在 onCreateView
方法之前调用 setUserVisibleHint
方法 .
你知道如何在第一个片段可见后运行此代码吗? ViewPager
中还有其他方法吗?
6 回答
你可以't (and shouldn' t)依靠
setUserVisibleHint
为此 . 相反,您应该使用ViewPager.OnPageChangeListener来获取页面变得可见时的回调 . 例如 .注意:如果您不需要监听所有回调,则可以使用
ViewPager.SimpleOnPageChangeListener
.更新
现在不推荐使用
setOnPageChangeListener
方法,而是使用addOnPageChangeListener
BELOW WORKED FOR ME
请创建这样的全局视图
并使用这个
和OnResume方法
您必须在根活动/片段中的
onCreateView
中手动调用mViewPagerListener.onPageSelected(0);
.我不明白你需要什么,但你可以通过调用返回整数的
ViewPager.getCurrentItem
来检测当前片段的页面 .希望能帮助到你 .
祝好运 .
好吧,它的解决方法更多,也许更好的设置
OnPageChangeListener
,但它适用于我 . 任务是确定当前片段在创建时是否可见 . 您可以使用菜单执行此操作 . 在你的片段中:还有这个
也许有人会发现它很有用 . 这适合我 .
我检查你的问题,但我发现在
setUserVisibleHint
方法之前调用onCreateView
方法