AndroidTabLayout在屏幕方向改变时不会自动切换。
创始人
2024-08-21 14:30:24
0

实现TabLayout的onSaveInstanceState和onRestoreInstanceState方法。

首先,在Activity的onCreate方法中,使用ViewPager创建TabLayout和Adapter。

ViewPager viewPager = findViewById(R.id.view_pager);
TabLayout tabLayout = findViewById(R.id.tab_layout);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
tabLayout.setupWithViewPager(viewPager);

然后在Activity中实现onSaveInstanceState和onRestoreInstanceState方法,保存和恢复选定的标签。

private int mCurrentSelectedTabPosition = 0;

@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("current_tab_position", mCurrentSelectedTabPosition);
}

@Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    mCurrentSelectedTabPosition = savedInstanceState.getInt("current_tab_position");
    tabLayout.getTabAt(mCurrentSelectedTabPosition).select();
}

最后,在ViewPager适配器中,重写getItemPosition方法,确保在屏幕方向改变时返回POSITION_NONE。

class ViewPagerAdapter extends FragmentPagerAdapter {

    // ... constructor and other methods ...

    @Override
    public int getItemPosition(@NonNull Object object) {
        // Ensure that POSITION_NONE is returned for fragments that need to be recreated
        return POSITION_NONE;
    }
}

这样,每次屏幕方向改变时,ViewPager和TabLayout都会被重新创建,而保存和恢复的标签位置也会被正确地切换。

相关内容

热门资讯

透视游戏!aapoker安装包... 透视游戏!aapoker安装包怎么使用(透视)透视脚本(原来真的是有挂)运aapoker安装包怎么使...
透视苹果版!aapoker免费... 透视苹果版!aapoker免费透视脚本(透视)ai插件(总是真的有挂);1、打开软件启动之后找到中间...
透视安卓版!aapoker免费... 透视安卓版!aapoker免费透视脚本(透视)透视脚本(竟然存在有挂)1、实时aapoker免费透视...
透视数据!aapoker辅助怎... 透视数据!aapoker辅助怎么用(透视)免费透视脚本(切实真的有挂)1、aapoker辅助怎么用透...
透视安卓版!aapoker辅助... 透视安卓版!aapoker辅助工具安全吗(透视)插件(总是真的有挂);aapoker辅助工具安全吗是...
透视安装!aapoker辅助插... 透视安装!aapoker辅助插件工具(透视)透视脚本下载(原来存在有挂)1、透视安装!aapoker...
透视教学!aapoker透视方... 透视教学!aapoker透视方法(透视)辅助插件工具(竟然真的有挂)一、aapoker透视方法软件透...
透视游戏!aapoker怎么提... 透视游戏!aapoker怎么提高中牌率(透视)脚本(果然有挂)一、aapoker怎么提高中牌率AI软...
透视辅助!aapoker透视脚... 透视辅助!aapoker透视脚本下载(透视)ai插件(好像真的是有挂)1、下载好aapoker透视脚...
透视安装!aapoker透视脚... 透视安装!aapoker透视脚本(透视)ai插件(原来是真的有挂)1)aapoker透视脚本辅助挂:...