3

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


我在 In page adapter 中设置了每个 Fragment 的隐藏状态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);
}
4

2 回答 2

2

Androidfor 中ViewPager有一个listener被调用ViewPager.OnPageChangeListener的方法,例如

onPageScrollStateChanged(int state),

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

onPageSelected(int position)

如果你想为页面做一些特定的任务,你需要编写ViewPager.OnPageChangeListener和覆盖onPageSelected(int position)方法。

有关更多详细信息,请参见此处

于 2012-10-29T03:31:31.580 回答
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) {
    }
});
于 2012-10-29T03:32:44.380 回答