首页 > 解决方案 > 我如何在android中使用导航栏和导航图

问题描述

我在一个项目中使用导航图和导航栏,我想在其中一个底部使用主机导航。但代码不起作用。实际上,当我将 androidx.navigation.Navigation 导入到导致应用程序崩溃的片段时。id 如何解决这个问题?在这里我写了如何更改片段和部分代码使在此处输入图像描述错误。

// 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()
    }

标签: androidandroid-fragmentskotlinnavigationbar

解决方案


导航图中,您必须在源片段下设置一个操作。喜欢 :

<action
     android:id="@+id/search_action"
     app:destination="@+id/destinationFragmentId" />

在这里,动作标签的id很重要。现在在源代码片段中,您必须更改按钮单击侦听器,例如yourButton.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.search_action));

看这里 id 与 action 标签的 id 相同。

并且无需替换片段或提交片段。所有人都会照顾您的导航图。首先在导航图中设计正确的地图。

欲了解更多信息,您可以访问这里


推荐阅读