2016-07-12 2 views
1

Я использую android.support.design.widget.TabLayout и android.support.v4.view.ViewPager в действии.
Ошибка не возникает. На всех вкладках отображаются штрафы, их можно выбрать, выполнить прокрутку.TabLayout onTabSelected not called

код активность:

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

Что мне не хватает?

+0

Вы инициализировали свой адаптер? –

+0

да, у меня все вкладки хорошо отображаются, я могу выбрать вкладки, проведите между ними @JoaquimLey – ericn

ответ

0

Попытка выполнить свои действия в следующем порядке:

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

Если это не сработает, то вопрос должен быть вне сферы действия кода вы предоставили. Если это так, пожалуйста, сообщите нам об этом, чтобы мы могли продолжить расследование.

+0

да, вы правы @JoaquimLey, он уже работал на самом деле, только моя глупость. Я отфильтровал вывод logcat в Android Studio, поэтому я не видел, чтобы журнал был распечатан – ericn

+0

Nice @eric Я рад;) –

0

ниже код tablayout & ViewPager snyc

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