Получить горизонтальную прокрутку в таблице

#android

#Android

Вопрос:

Я хочу интерполировать между двумя цветами во время прокрутки или «прокрутки» до следующей вкладки в таблице. Для этого мне нужен какой-то способ узнать, когда пользователь переключается между вкладками. Я пробовал использовать TabLayout.OnScrollChangeListener но метод никогда не вызывается. Можно ли узнать, когда пользователь переходит на новую вкладку, и если да, то как?

Редактировать:

 libraryTabs.setOnScrollChangeListener(new TabLayout.OnScrollChangeListener() {

            @Override
            public void onScrollChange(View view, int i, int i1, int i2, int i3) {

            }
        });  
  

никогда не вызывается.

Ответ №1:

я думаю, чтобы достичь того, чего вы хотите, вам понадобится страница просмотра, что-то вроде этого

 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
        }
    });
  

Комментарии:

1. Спасибо, это именно то, что я искал.

Ответ №2:

Попробуйте это.

 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) {
        }
    });
  

Комментарии:

1. Спасибо, но разве это не работает только при выборе вкладки, а не при ее прокрутке? В настоящее время я использую этот метод для переключения цветов между вкладками.

2. Попробуйте код и посмотрите, работает ли он. У меня отлично работает, если реализовано с помощью ViewPager. Просто любопытно, используете ли вы какие-либо библиотеки вкладок?