TabLayout onTabSelected 未调用

TabLayout onTabSelected not called

我在 activity 中使用 android.support.design.widget.TabLayoutandroid.support.v4.view.ViewPager
没有错误。所有标签都显示罚款,他们可以选择,滑动工作。

Activity代码:

ViewPager mViewPager;
TabLayout mSlidingTabs;
mSlidingTabs = (TabLayout) findViewById(R.id.tabs);
        mSlidingTabs.setupWithViewPager(mViewPager);

        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                Log.w(TAG, "onPageScrolled");// nothing happens here either
            }

            @Override
            public void onPageSelected(int position) {
                Log.w(TAG, "onPageSelected");// nothing happens here either
            }

            @Override
            public void onPageScrollStateChanged(int state) {
                Log.w(TAG, "onPageScrollStateChanged");// nothing happens here either
            }
        });
        mSlidingTabs.setOnTabSelectedListener(
                new TabLayout.ViewPagerOnTabSelectedListener(mViewPager) {
                    @Override
                    public void onTabSelected(TabLayout.Tab tab) {
                        super.onTabSelected(tab);
                        Log.w(TAG, "selected");
                    }
                    @Override
                    public void onTabUnselected(TabLayout.Tab tab) {
                        Log.w(TAG, "onTabUnselected");
                    }

                    @Override
                    public void onTabReselected(TabLayout.Tab tab) {
                        Log.w(TAG, "onTabReselected");
                    }
                });  

我错过了什么?

tablayout 和 viewpager nyc 代码下方

  pagerList.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

尝试按以下顺序执行操作:

  1. 调用`setupWithViewPager();
  2. 添加 onTabSelectedListener();

像这样:

mSlidingTabs.setupWithViewPager(mViewPager);
mSlidingTabs.setOnTabSelectedListener(
  new TabLayout.ViewPagerOnTabSelectedListener(mViewPager) {
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        super.onTabSelected(tab);
        Log.d(TAG, "Tab selected");
    }
});

如果这不起作用,问题一定在您提供的代码的范围之外。如果是这种情况,请提供一些反馈,以便我们进一步调查。