2016-10-10 3 views
1

Ich möchte beim Scrollen oder "Wischen" zum nächsten Tab in einem TabLayout zwischen zwei Farben interpolieren. Um dies zu tun, muss ich wissen, wann der Benutzer zwischen den Tabs wischt. Ich habe versucht, TabLayout.OnScrollChangeListener zu verwenden, aber die Methode wird nie aufgerufen. Ist es möglich zu wissen, wann der Benutzer zu einem neuen Tab wischt und wenn ja, wie?Horizontales Scrollen auf TabLayout

Edit:

libraryTabs.setOnScrollChangeListener(new TabLayout.OnScrollChangeListener() { 

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

      } 
     }); 

nie aufgerufen.

Antwort

1

ich denke, zu erreichen, was Sie wollen, dann müssen Sie ein View so etwas wie dieses

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

Danke, das ist genau das, was ich gesucht habe. – user2082169

0

Versuchen Sie dies.

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

Danke, aber nicht diese nur Arbeit für, wenn ein Tab ausgewählt ist und nicht, wenn es gescrollt ? Ich verwende derzeit diese Methode, um Farben zwischen Tabs zu wechseln. – user2082169

+0

Probieren Sie den Code und sehen Sie, ob er wischt. Funktioniert gut für mich, wenn mit ViewPager implementiert. Nur neugierig, verwenden Sie irgendwelche Tab-Bibliotheken? –

Verwandte Themen