加载第一个Fragment后,ViewPager调用setUserVisibleHint

Cil*_*nco 43 android android-fragments android-viewpager

在我的应用程序中,我有一个ViewPager,其中包含许多带有Fragments的可滑动Tabs.我使用该setUserVisibleHint方法来检测何时Fragment进入屏幕.当用户在选项卡之间滑动但在第一次加载时它不起作用时,这非常有效.要在方法中运行代码,我必须向左滑动然后再回到第一个,Fragment因为在setUserVisibleHint方法之前调用该onCreateView方法.

你知道如何在第一个片段可见后运行此代码吗?是否有其他方法ViewPager

Pau*_*rke 64

你不能(也不应该)依赖setUserVisibleHint于此.相反,您应该使用ViewPager.OnPageChangeListener来获取页面变得可见时的回调.例如

viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
        // do your work
    } 
});
Run Code Online (Sandbox Code Playgroud)

注意:ViewPager.SimpleOnPageChangeListener如果您不需要监听所有回调,则可以使用.

更新

setOnPageChangeListener方法现已弃用,请addOnPageChangeListener改用

viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
        // do your work
    } 
});
Run Code Online (Sandbox Code Playgroud)

  • 保罗:我怎么能在第一页第一次看到它? (11认同)