Skip to content

Instantly share code, notes, and snippets.

@wasnot
Created October 30, 2015 03:46
Show Gist options
  • Save wasnot/b24e4618047db5504c1e to your computer and use it in GitHub Desktop.
Save wasnot/b24e4618047db5504c1e to your computer and use it in GitHub Desktop.
TabLayoutをViewPagerでsetupした時はOnTabSelectedListenerを使わない ref: http://qiita.com/wasnot/items/a518e81b713a09a29b34
* Add a ViewPager.OnPageChangeListener that will forward events to this TabLayout.
* Populate the TabLayout's tabs from the ViewPager's PagerAdapter.
* Set our TabLayout.OnTabSelectedListener which will forward selected events to the ViewPager
mMyPagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mMyPagerAdapter);
// AdapterをセットしたViewPagerからTabLayoutを設定する
mTabLayout.setupWithViewPager(mViewPager);
// これをすると上書きしてしまって連動機能が動かなくなる
mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// 何かしたい
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
mMyPagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mMyPagerAdapter);
// ViewPagerの方にListenerを設定すれば問題なさそう
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// 何かしたい
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
mTabLayout.setupWithViewPager(mViewPager);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment