【问题标题】:How to hide a navigation drawer icon in start destination fragment and show it next to start destination fragment for navigation graph如何在开始目标片段中隐藏导航抽屉图标并将其显示在导航图的开始目标片段旁边
【发布时间】:2019-06-21 18:42:37
【问题描述】:

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

当我在我的活动中添加Navigationdrawer 时,它在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 中显示汉堡图标,而不是在LoginFragment

【问题讨论】:

标签: android kotlin navigation-drawer


【解决方案1】:

我认为您正在使用 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 中的方法。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多