繁体   English   中英

如何在开始目标片段中隐藏导航抽屉图标,并在导航图的开始目标片段旁边显示它

[英]How to hide a navigation drawer icon in start destination fragment and show it next to start destination fragment for navigation graph

我将使用Navigation Graph开发一个具有单个活动和两个片段(LoginFragment和HomeFragment)的Android应用程序,并带有Navigation Drawer。

当我在活动中添加了Navigationdrawer ,它在LoginFragment可见,但是我只想在LoginFragment中显示汉堡图标,而不在HomeFragment LoginFragment

如何在活动中添加导航抽屉而不将其添加到LoginFragment

我试图隐藏toolbar

        val navController=this.findNavController(R.id.nav_host_fragment)

        navController.addOnDestinationChangedListener{ nc: NavController, nd: NavDestination, _->
            if(nd.id==nc.graph.startDestination){
                drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
                binding.toolBar.visibility = View.GONE

            }else{
                drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
                NavigationUI.setupActionBarWithNavController(this,navController,drawerLayout)
                binding.toolBar.visibility = View.VISIBLE
            }

我只想在HomeFragment显示汉堡包图标, HomeFragment不是LoginFragment

您可以在活动中创建用于隐藏和显示导航抽屉图标的函数,并在各自的片段中调用这些函数onCreateView

我认为您正在使用Kotlin。 但是我认为它与Java中的方法没有什么不同。 您可以从Java转换为Kotlin。 那就是我在Java中所做的。

    ((AppCompatActivity) getActivity()).getSupportActionBar().hide(); // to hide toolbar
    ((AppCompatActivity) getActivity()).getSupportActionBar().show(); //to show toolbar

您需要在片段中使用此代码。 例如,您可以设置... hide(); LoginFragment的onCreateView方法中的方法,之后可以设置... show(); HomeFragment的oncreateView中的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM