Как скрыть значок панели навигации в начальном фрагменте назначения и показать его рядом с начальным фрагментом назначения для графика навигации - PullRequest
0 голосов
/ 21 июня 2019

Я бы разработал приложение для Android с одиночной активностью и двумя фрагментами (LoginFragment и HomeFragment) с навигационным ящиком с использованием навигационного графика.

Когда я добавил в свою активность 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

Ответы [ 3 ]

0 голосов
/ 21 июня 2019

Вы можете создавать функции для скрытия и отображения значка панели навигации в своей деятельности и вызывать эти функции в соответствующих фрагментах на CreateView

0 голосов
/ 21 июня 2019

Я думаю, что вы используете Kotlin.Но я не думаю, что это будет отличаться от метода в Java.Вы можете конвертировать из Java в Kotlin.Это то, что я сделал в Java.

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

Вам нужно использовать эти коды во фрагментах.Например, вы можете установить ... hide ();метод в методе onCreateView объекта LoginFragment, после этого вы можете установить ... show ();метод в oncreateView HomeFragment.

0 голосов
/ 21 июня 2019

Лучше создать отдельную активность для страницы входа. после входа в систему вы можете вызвать основной вид деятельности и установить HomeFragment.

...