我在项目中使用导航图和导航栏,并且想在其中一个底部使用主机导航。但是代码不起作用。实际上,当我将androidx.navigation.Navigation导入导致应用崩溃的片段时。 id如何解决这个问题? 在这里,我写了如何更改代码的片段和女巫部分,从而导致enter image description here错误。
// The part of code that makes error
navController = Navigation.findNavController(view)
view.findViewById<Button>(R.id.id_postBtn).setOnClickListener(this)
// how i change fragment
private fun replaceFrag(frag: Fragment){
val fragTran = supportFragmentManager.beginTransaction()
fragTran.replace(R.id.container, frag)
fragTran.commit()
}
答案 0 :(得分:0)
在导航图中,您必须在源代码片段下设置一个操作。就像:
<action
android:id="@+id/search_action"
app:destination="@+id/destinationFragmentId" />
在这里,重要的是 action 标签的 id 。
现在,在源代码片段中,您必须像yourButton.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.search_action));
这里的id与动作标签的ID相同。
并且无需替换片段或提交片段。一切都会照顾您的导航图。首先在导航图中设计正确的地图。
有关更多信息,您可以访问here