Как отключить пункт меню нижнего вида навигации? - PullRequest
0 голосов
/ 12 января 2020

Как отключить пункт меню навигации по дизайну материала? Я могу установить .isClickable = false, но это не показывает пункт меню как отключенный, как кнопка. Я не могу сделать .isEnabled, API не допустит этого.

<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/menu_item_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:background="@color/colorDark"
app:menu="@menu/bottom_navigation_menu">

<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_home"
android:title="Home"
android:icon="@drawable/home_button"
app:showAsAction="ifRoom" />


class Something : AppCompatActivity() {
 private lateinit var mHomeBtn: BottomNavigationItemView
 override fun onCreate(...) {
  mHomeBtn = this.findViewById(R.id.action_home)
  mHomeBtn.isClickable = false <--- will make it unable to click but won't show disabled
  mHomeBtn.isEnabled = false <--- will throw an error
  mHomeBtn.setOnClickListener(this)
}
...

1 Ответ

1 голос
/ 12 января 2020

Вы должны получить меню вашего BottomNavigationView, а затем найти и отключить MenuItem, который вы хотите. В коде это можно сделать следующим образом:

override fun onCreate(savedInstanceState: Bundle?) {
    // Find the bottom navigation view, (Use correct ID)
    // menu_item_1 is probably not a good ID for a navigation view
    val navView: BottomNavigationView = findViewById(R.id.nav_view)

    // Find the menu item and then disable it
    navView.menu.findItem(R.id.navigation_home).isEnabled = false
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...