[英]ViewPager's onPageSelected never called
我需要实现setOnPageChangeListener
因为如果向用户显示第一个片段,我需要隐藏ActionBar
某个item
。
我的简单代码:
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
如果显示第一个片段( 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
}
});
希望这会对你有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.