我需要实现 setOnPageChangeListener
因为我需要隐藏某些 item
来自 ActionBar
如果第一个 fragment 显示给用户。
我的简单代码:
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int page) { //never called
// TODO Auto-generated method stub
if(page == 0)
{
isSearch = false;
}
else
{
isSearch = true;
}
supportInvalidateOptionsMenu();
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
viewPager.setCurrentItem(0); //not working
如果显示第一个 fragment (page
== 0),isSearch
应该是 false
但是 onPageSelected
调试时从未被调用。
请帮助我,谢谢你的帮助。
注意:我的适配器不实现OnPageChangeListener
.或者我应该实现它吗?是必须的吗?
最佳答案
如果您将 PageIndicator 与 Viewpager 结合使用,则不会调用 ViewPager 的 onPageChangeListener。您应该为 PageIndicator 设置一个页面更改监听器,它会在页面更改时被调用。
indicator.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int page) {
if(page == 0)
{
isSearch = false;
}
else
{
isSearch = true;
}
supportInvalidateOptionsMenu();
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
希望对你有帮助 ツ
关于android - ViewPager onPageSelected 从未调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199526/