ViewPager OnPageSelected()或OnPageShow()中的片段?

时间:2012-10-29 03:28:55

标签: android android-viewpager

ViewPager中的片段是否有类似OnPageSelected()OnPageShow()的方法?我应该在显示特定页面时做些什么?


我在onPageScrolled()页面适配器中设置了每个片段的隐藏状态,我想知道为什么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);
}

2 个答案:

答案 0 :(得分:2)

Android ViewPager listenerViewPager.OnPageChangeListener名为onPageScrollStateChanged(int state), onPageScrolled(int position, float positionOffset, int positionOffsetPixels) , onPageSelected(int position) ,其中包含

等方法
ViewPager.OnPageChangeListener

如果您想为页面执行某项特定任务,则需要编写onPageSelected(int position)并覆盖{{1}}方法。

了解更多详情see here

答案 1 :(得分:1)

您可以使用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) {
    }
});