我有一个屏幕,其中的标签页使用ViewPager2
+ FragmentStateAdapter
(标签式屏幕)。每个选项卡都有一个RecyclerView
,其中包含可点击的项目。我使用Jetpack导航导航到“详细信息”屏幕。
我遇到的问题是,从详细信息屏幕返回时,无法保留选项卡式屏幕的状态。当我返回到选项卡式屏幕时,将重新创建该片段。
在选项卡式屏幕中,我尝试重用该视图,但未成功:
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
if (v == null) {
v = inflater.inflate(R.layout.fragment_tabbed, container, false)
}
return v
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if (pagerView.adapter == null) {
pagerView.isSaveEnabled = false
adapter = MyAdapter(this)
pagerView.adapter = adapter
}
}
[...]
private class MyAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
override fun createFragment(position: Int): Fragment {
return ListFragment.newInstance(position)
}
}
但是ViewPager2
为空白。当我切换到另一个选项卡,然后回到当前选项卡时,该视图再次可见。
推荐使用哪种方法来制作此选项卡式列表/详细视图?
谢谢!