在Android TabLayout设置tabModescrollable时,如果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的位置,从而防止其滑动回原先位置。

Android TabLayout 可滚动模式下防止滑动回原位

原文地址: https://www.cveoy.top/t/topic/oJPC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录