Как удалить кнопку «Назад» на панели инструментов фрагмента верхнего уровня, если я установил панель инструментов в каждом фрагменте, используя компонент навигации? - PullRequest
0 голосов
/ 08 апреля 2020

Я пытался прочитать это , но моя проблема немного отличается.

Мне нужны несколько разных панелей инструментов, поэтому в соответствии с документацией здесь мне нужно установить панель инструментов в каждом фрагменте, а не в MainActivity.

, поэтому я установил панель инструментов в каждом xml моего фрагмента. и затем в каждом фрагменте я использую этот код для установки панели инструментов

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val toolbar = view.findViewById<androidx.appcompat.widget.Toolbar>(R.id.toolbar3)

        val navHostFragment = NavHostFragment.findNavController(this);
        NavigationUI.setupWithNavController(toolbar, navHostFragment)


    }

, но у меня есть кнопка возврата в фрагменте верхнего уровня моего нижнего навигационного представления, как на рисунке ниже. Я запутался, как передать appBarConfiguration, если я установил панель инструментов из моего фрагмента, а не из MainActivity

enter image description here

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Я наконец-то получил ответ. Мне нужно установить appBarConfiguration в КАЖДОМ фрагменте верхнего уровня

, поэтому в моем HomeFragment и SearchFragment вам должно понравиться

val toolbar = view.findViewById<androidx.appcompat.widget.Toolbar>(R.id.toolbar2)
val appBarConfiguration = AppBarConfiguration(setOf(
    R.id.destination_home,
    R.id.destination_search)
)

val navHostFragment = NavHostFragment.findNavController(this);
NavigationUI.setupWithNavController(toolbar, navHostFragment,appBarConfiguration)

для использования AppBarConfiguration класса , вам нужен navigation-ui-ktx артефакт, а также в приложении Gradle, которое вы используете, передайте параметры компиляции и kotlin параметры

android {


    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8.toString()
    }

}
0 голосов
/ 08 апреля 2020

Вы должны попробовать CUSTOM ACTION BAR вместо панели действий по умолчанию и в каком фрагменте вы не хотите отступать. Кнопка Просто установите VISIBILITY GONE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...