android - ViewPager onPageSelected 从未调用过

标签 android

我需要实现 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/

相关文章:

android.widget.PopupWindow$PopupDecorView 在打开菜单的情况下旋转设备时泄漏

android - 我应该在 onSaveInstanceState 中保留数据对象吗

java - 为什么 DialogFragment.dismiss 不立即终止对话框?

java - 如何通过文件名检查文件是否存在于(内部/外部存储)?

android - 在 ListView 中启用电话调用

android - 如何在Android平台覆盖or.apache.http

android - 将 ViewPager 与 fragment 一起使用时, fragment 会在滑动时被销毁

android - 使用 Radius Networks Android Beacon 库检测 iBeacons UUID

android - 如何在请求广告时使 AdView "occupy"空间? (安卓)

java - Java Finalize 中的可见性