Android TabLayout 可滚动模式下防止滑动回原位
在Android TabLayout设置tabMode为scrollable时,如果tab数量过多,可能会出现TabLayout滑动到原先位置的情况。为了避免这种情况,可以通过设置TabLayout的addOnTabSelectedListener监听器,在选中tab时手动将TabLayout的滑动位置滚动到当前选中tab的位置。
示例代码如下:
TabLayout tabLayout = findViewById(R.id.tab_layout);
ViewPager viewPager = findViewById(R.id.view_pager);
// 设置TabLayout的tabMode为scrollable
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
// 设置ViewPager的适配器
viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
// 将TabLayout和ViewPager关联起来
tabLayout.setupWithViewPager(viewPager);
// 添加TabLayout的选中监听器
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// 手动将TabLayout的滑动位置滚动到当前选中tab的位置
tabLayout.scrollTo(tab.getPosition(), 0);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
通过在onTabSelected方法中调用tabLayout.scrollTo(tab.getPosition(), 0),即可将TabLayout滑动到当前选中tab的位置,从而防止其滑动回原先位置。
原文地址: https://www.cveoy.top/t/topic/oJPC 著作权归作者所有。请勿转载和采集!