Android 还记得Kotlin片段中选择的TabLayout选项卡吗

Android 还记得Kotlin片段中选择的TabLayout选项卡吗,android,android-fragments,kotlin,android-savedstate,Android,Android Fragments,Kotlin,Android Savedstate,每当其父活动重新启动时,从片段中的表格布局中记住所选选项卡的正确方法是什么?我的savedInstanceStateif语句似乎对我不起作用 class MyFragment : androidx.fragment.app.Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } override fun o

每当其父
活动
重新启动时,从
片段中的
表格布局
中记住所选选项卡的正确方法是什么?我的
savedInstanceState
if语句似乎对我不起作用

class MyFragment : androidx.fragment.app.Fragment() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?): View? {
        return inflater.inflate(R.layout.my_fragment, container, false)
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {

        if (savedInstanceState != null){
            my_tabs.getTabAt(savedInstanceState.getInt(CURRENT_FRAGMENT))
        }

        val adapter = MyViewPagerAdapter((activity as AppCompatActivity).supportFragmentManager)
        adapter.addFragment(getString(R.string.item_a), FragmentA())
        adapter.addFragment(getString(R.string.item_b), FragmentB())
        adapter.addFragment(getString(R.string.item_c), FragmentC())
        adapter.addFragment(getString(R.string.item_d), FragmentD())

        viewPager.adapter = adapter
        my_tabs.setupWithViewPager(viewPager)

        super.onActivityCreated(savedInstanceState)
    }
}

尝试在共享首选项中保存当前选项卡位置,并在活动重新启动时从共享首选项设置该选项卡位置

您是否确实从
onCreateView
中调用
super.onCreate(savedInstanceState)
?可能与你的问题无关,但这似乎不对#3@EpicPandaForce那么你是说它应该在
onViewCreated
中声明吗?不,我是说一个ViewPager的FragmentPagerAdapter应该是这样的:否则你会有问题的。@EpicPandaForce Ok,但这仍然意味着我必须为每个ViewPager创建一个FragmentPagerAdapter,因为每个ViewPager都有不同数量的选项卡。