Проблема с панелью навигации с действиями, всегда окрашивающими первый значок, даже после выбора другого элемента в Kotlin - PullRequest
0 голосов
/ 01 мая 2020

Проблема в том, что после щелчка другого значка в нижней панели навигации до go к нему выбранное действие загружается правильно, однако значок, окрашенный в нижней панели навигации, всегда является первым значком (Главная) , Интересно то, что после нажатия на нужную иконку, она загорается правильно, но после того, как активность действительно загружается, она возвращается к выделению дома. Еще одна интересная вещь заключается в том, что после загрузки нужного действия, если я нажимаю на тот же нужный значок, он загорается правильно, но если я нажимаю любой другой значок, он возвращается к выделению home. Вот код ниже.

Навигация по дну в Activity_main. xml

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:itemBackground="@color/colorPrimaryDark"
        app:itemIconTint="@drawable/selector"
        app:itemTextColor="@drawable/selector"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:menu="@menu/menu_navigation"
        app:labelVisibilityMode="labeled"/>

Выбор. xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@android:color/white" android:state_checked="true" />
    <item android:color="@android:color/black" />

</selector>

Навигация по коду в доме kotlin файл

val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
            when (item.itemId) {
                R.id.guides -> {
                    startActivity(Intent(this, Guides::class.java))
                    return@OnNavigationItemSelectedListener true
                }
                R.id.home -> {
                    return@OnNavigationItemSelectedListener true
                }
                R.id.extras -> {
                    startActivity(Intent(this, Extras::class.java))
                    return@OnNavigationItemSelectedListener true
                }
                R.id.settings -> {
                    startActivity(Intent(this, Settings::class.java))
                    return@OnNavigationItemSelectedListener true
                }
            }
            false
        }

        bottom_navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)

Навигационный код снизу в желаемом (Руководства) kotlin Файл

val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
            when (item.itemId) {
                R.id.guides -> {
                    return@OnNavigationItemSelectedListener true
                }
                R.id.home -> {
                    startActivity(Intent(this, MainActivity::class.java))
                    return@OnNavigationItemSelectedListener true
                }
                R.id.extras -> {
                    startActivity(Intent(this, Extras::class.java))
                    return@OnNavigationItemSelectedListener true
                }
                R.id.settings -> {
                    startActivity(Intent(this, Settings::class.java))
                    return@OnNavigationItemSelectedListener true
                }
            }
            false
        }

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