当导航到新的片段时,移除底部导航栏

3
我有一个底部导航,我通过底部点击导航到新的片段,但底部导航没有被移除到新片段。
导航到新片段。
edit_flow.setOnClickListener {

            findNavController().navigate(R.id.action_navigation_home_to_flowFragment)

}

我想在启动FlowFragment时移除底部导航。

查看图片


简单的方法是,在导航图标点击时启动新的活动,而不是使用片段。或者您可以在单击任何项时设置navigation view的setVisibility(View.GONE)。为什么会发生这种情况呢?因为frameLayout将位于navigationview之上,在framelayout中我们只是替换片段,因此在底部navigation view始终可见。 - pratik vekariya
谢谢,我在哪里可以使用setVisibility(View.GONE)?抱歉,我是Android开发的新手。 - ismacil jama
在导航项单击时调用setVisibility(View.GONE)。例如,从上面的图像中,“Deep Link”是导航项之一,对吧?所以,在onClick方法中,你可以写成your_navtigation_view_id.setVisibility(View.GONE)。 - pratik vekariya
好的,它可以工作,但是当我回到主页片段时,导航视图不可见。 - ismacil jama
显然它不会显示,因为一旦你在“Deep Link”的onClick中隐藏它。现在你需要在导航视图的“主页”项的onClick方法中再次设置your_navigation_view_id.setVisibility(View.VISIBLE)。 - pratik vekariya
1个回答

3
在宿主Activity中,绑定NavControler后,请尝试以下操作:
 navController.addOnDestinationChangedListener { _, destination, _ ->
        when (destination.id) {
            R.id.yourFragment-> bottomNavigationMain.visibility = View.GONE
                .
                .
                .
            else -> bottomNavigationMain.visibility = View.VISIBLE
        }
    }

在这里,yourFragment 不应该显示 ButtonNavigationMenu。其他的 fragment 则会显示它。

1
我很高兴它能帮到你。 - A.R.B.N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接