Android 在TabLayout上获得水平滚动

Android 在TabLayout上获得水平滚动,android,Android,我想在滚动或“滑动”到表格布局中的下一个选项卡时,在两种颜色之间进行插值。要做到这一点,我需要知道用户何时在标签之间滑动。我尝试过使用TabLayout.OnScrollChangeListener,但从未调用该方法。是否有可能知道用户何时滑动到新选项卡,如果有,如何移动 编辑: 从未调用过。试试这个 tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override

我想在滚动或“滑动”到表格布局中的下一个选项卡时,在两种颜色之间进行插值。要做到这一点,我需要知道用户何时在标签之间滑动。我尝试过使用TabLayout.OnScrollChangeListener,但从未调用该方法。是否有可能知道用户何时滑动到新选项卡,如果有,如何移动

编辑:

从未调用过。

试试这个

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            mViewPager.setCurrentItem(tab.getPosition());
          //Do whatever you want here.
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {
        }
    });

我认为要实现你想要的,你需要一个查看页面 像这样的

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");
            // do what you want
        }
        @Override
        public void onPageSelected(int position) {
            Log.w(TAG, "onPageSelected");
            // do what you want
        }
        @Override
        public void onPageScrollStateChanged(int state) {
            Log.w(TAG, "onPageScrollStateChanged");
            // do what you want
        }
    });

谢谢,但这不是只适用于选中选项卡时,而不适用于滚动选项卡时吗?我当前正在使用此方法在选项卡之间切换颜色。请尝试此代码,看看它是否滑动。如果使用ViewPager实现,对我来说效果很好。只是好奇,你在用标签库吗?谢谢,这正是我要找的。
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");
            // do what you want
        }
        @Override
        public void onPageSelected(int position) {
            Log.w(TAG, "onPageSelected");
            // do what you want
        }
        @Override
        public void onPageScrollStateChanged(int state) {
            Log.w(TAG, "onPageScrollStateChanged");
            // do what you want
        }
    });