在ViewPager中,Fragment的OnPageSelected()或OnPageShow()方法是什么?

3

在ViewPager中的Fragment是否有类似于OnPageSelected()OnPageShow()的等效方法?当特定页面显示时,我应该做些什么吗?


我在页面适配器的onPageScrolled()中设置了每个Fragment的隐藏状态,但我想知道为什么onHiddenChanged()没有被调用?

// 在PageAdapter中(扩展FragmentPagerAdapter)

    public void onHiddenChanged(int arg0)
    {
        for (int i = 0; i < getCount(); i++) {
            if (i == arg0) {
                mAdapter.getItem(arg0).onHiddenChanged(true);
            } else {
                mAdapter.getItem(arg0).onHiddenChanged(false);
            }
        }
    }

// 在PageActivity中(继承自FragmentActivity)

public void onPageSelected(int arg0)
{
    mAdapter.onHiddenChanged(arg0);
}

已解决!请参见此链接:https://dev59.com/iWkw5IYBdhLWcg3wQoSm#12523627 - thecr0w
2个回答

2
在安卓系统中,如果要使用ViewPager组件,需要使用ViewPager.OnPageChangeListener监听器。该监听器包含多个方法,例如:
onPageScrollStateChanged(int state),

onPageScrolled(int position, float positionOffset, int positionOffsetPixels) , 

onPageSelected(int position)

如果您想为页面执行某些特定任务,您需要编写 ViewPager.OnPageChangeListener 并覆盖 onPageSelected(int position) 方法。
更多详情请查看这里

已解决!请参见:https://dev59.com/iWkw5IYBdhLWcg3wQoSm#12523627 - thecr0w

1
你可以使用{{link1:OnPageChangeListener}}。当页面发生更改时,您将获得回调,例如:
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        // this will be called when the page is changed
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    }

    @Override
    public void onPageScrollStateChanged(int arg0) {
    }
});

我需要调用Fragment而不是FragmentTabsActivity,怎么办? - thecr0w
已解决!请参见:https://dev59.com/iWkw5IYBdhLWcg3wQoSm#12523627 - thecr0w

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接