Хороший подход с использованием BottomNavigationView? - PullRequest
0 голосов
/ 22 декабря 2018

Я хочу перемещаться между действиями, окрашивая текущий элемент в нижней части навигации.

Каков наилучший подход для достижения этой цели?

В настоящее время для каждого действиякогда я использую BottomNavigationView (в данном случае com.google.android.material.bottomnavigation.BottomNavigationView),

Я дублирую почти тот же код для навигации между действиями, которые трудно поддерживать:

  1. Маркировка текущего itemId
  2. Установка setOnNavigationItemSelectedListener без текущего itemId.

    jesta_bottom_navigation.selectedItemId = R.id.nav_do_jesta
    
    jesta_bottom_navigation.setOnNavigationItemSelectedListener {
    
        val intent = when (it.itemId) {
            R.id.nav_ask_jesta -> {
                Intent(this@DoJestaActivity, AskJestaActivity::class.java)
            }
            R.id.nav_status -> {
                Intent(this@DoJestaActivity, StatusActivity::class.java)
            }
            // Settings Activity
            else -> {
                Intent(this@DoJestaActivity, SettingsActivity::class.java)
            }
        }
        startActivity(intent)
        true
    }
    

frame_bottom_navigation_view.xml

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/jesta_bottom_navigation"
        style="@style/Widget.Jesta.BottomNavigationView"
        android:layout_width="match_parent"
        android:layout_height="@dimen/bottom_bar"
        android:layout_gravity="bottom"
        app:itemIconSize="30dp"
        app:itemIconTint="@drawable/jesta_bottom_navigation_colors"
        app:labelVisibilityMode="unlabeled"
        app:menu="@menu/bottom_nav_drawer_menu" />

</FrameLayout>

1 Ответ

0 голосов
/ 22 декабря 2018

Как насчет использования внешней библиотеки для этого быстрее

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