Совместное использование Android BottomNavigationView в приложении

Я новичок в разработке Android, и я хотел спросить, какое решение здесь лучше всего.

В моем activity_main.xml есть контент, а внизу - <android.support.design.widget.BottomNavigationView>. Я установил несколько иконок и создал для них слушатель. Навигация содержит простой значок настроек, и при щелчке по нему должен запускаться SettingsActivity. Эта навигация должна быть везде в приложении.

Вот мой вопрос: Каков наилучший подход, если я не хочу реализовывать этот BottomNavigationView в каждом отдельном действии, реализуя один и тот же слушатель снова и снова в каждом действии? Я слышал об использовании фрагментов вместо активности, но теперь они устарели, верно? Должен быть лучший способ, реализация навигации снова и снова с одним и тем же кодом не может быть правильным подходом.

«Я слышал об использовании фрагментов вместо активности, но теперь они устарели, верно?» Совершенно нормально использовать фрагмент из библиотеки поддержки. Единственный устаревший класс фрагментов - android.app.Fragment, см., Например, эта почта.

Bö macht Blau 17.10.2018 20:26

Да, @ 0X0nosugar прав, и для макета просто создайте отдельный макет для нижней панели навигации, а затем используйте его в любом месте вашего приложения с помощью тега <include>

Deepak Kumar 17.10.2018 20:28

Так ... лучший способ избежать дублирования этого компонента - что явно неверно - использовать фрагменты? Или есть еще какой-нибудь современный андроид способ?

Froggo 17.10.2018 20:30
1
3
370
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Хотя обычный com.android.Fragment не рекомендуется, класс фрагментов поддержки, расположенный в любом из androidx.fragment.app.Fragment, не является устаревшим, и, вероятно, это то, что имеет смысл использовать здесь.

Таким образом, используя фрагментарный подход, у вас будет один класс Activity с настроенным BottomNavigationView. Когда пользователь перемещается с помощью BottomNavigationView, вы меняете фрагмент, отображаемый в вашей Activity. Этот учебник должен быть хорошей отправной точкой для включения этой функции.

Ответ принят как подходящий

Here comes my question : What is the best approach when I don't want to implement this BottomNavigationView in every single activity, implementing the same listener over and over again in every activity

Вам не нужно этого делать, так как Fragment здесь, чтобы помочь, и они не обесцениваются, а заменены на AndroidX (новый): androidx.fragment.app.Fragment. Вместо того, чтобы реализовывать это снова и снова, замените новый Fragment, когда будет выбран другой элемент.

Используйте setOnNavigationItemSelectedListener и делайте свое дело.

Проверьте образец здесь.

Другие вопросы по теме