我的问题仅与谷歌导航组件库中的新库有关,因此它与 .addtobackstack 等常规片段无关。
我会简化我想做的事情,但我的应用程序有 +30 片段
我们有一个父片段和一个子片段,一个父片段有选项卡和回收器视图,数据来自 API。如果我单击 RV 项目将打开子片段。如果我回到我想要的父片段,我不想再次加载数据。
我的测试总是从头开始重新加载,创建视图然后加载数据,我希望它就像我们有意打开新活动时一样,父活动仍然有他自己的视图。
这是我的一些代码也许我有问题
val host: NavHostFragment = supportFragmentManager
.findFragmentById(R.id.main_activity_host_fragment) as NavHostFragment? ?: return
class ParentFragment : Fragment() {
var mEmail: String = ""
var mPassword: String = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
var rootView: View = inflater.inflate(R.layout.fragment_parent, container, false)
setupViews(rootView)
loadDataFromServer()
rootView.text_clickable_to_sign_up_from_sign_in.setOnClickListener {
findNavController().navigate(R.id.child_frag_dest, null, null)
}
return rootView
}}
...