Java 底部导航Android-如何在每个当前片段位置设置通过编程检查的图标状态

Java 底部导航Android-如何在每个当前片段位置设置通过编程检查的图标状态,java,android,android-fragments,Java,Android,Android Fragments,例如,我有1个活动,其中2个片段名为片段A.1和片段A.2 首次启动活动时,默认情况下,它将立即显示片段A.1,BottomNavigation将图标片段A.1设置为活动状态。同样,如果单击BottomNavigation片段A.2,BottomNavigation也会将片段A.2图标设置为活动状态 但问题是,如果我的当前位置在片段A.2中,并且我按下后退按钮到片段A.1,则底部导航图标在片段A.2中保持活动状态,即使我的当前位置已经在片段A.1 我如何设置一个动态图标,活动将跟随我的位置 bo

例如,我有1个活动,其中2个片段名为片段A.1片段A.2

首次启动活动时,默认情况下,它将立即显示片段A.1
BottomNavigation
将图标片段A.1设置为活动状态。同样,如果单击
BottomNavigation
片段A.2
BottomNavigation
也会将片段A.2图标设置为活动状态

但问题是,如果我的当前位置在片段A.2中,并且我按下后退按钮到片段A.1,则
底部导航图标在片段A.2中保持活动状态,即使我的当前位置已经在片段A.1

我如何设置一个动态图标,活动将跟随我的位置

bottomnavigation.xml

        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottomNavigationView"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/white"
            app:itemIconTint="@drawable/bottom_navigation_item_colors"
            app:itemTextColor="@drawable/bottom_navigation_text_colors"
            app:labelVisibilityMode="labeled"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@id/container"
            app:layout_constraintStart_toStartOf="parent"
            app:menu="@menu/navigation_bottom" />


这就是我如何做到这种行为:

<com.google.android.material.bottomnavigation.BottomNavigationView
                    android:id="@+id/navigation"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_marginStart="0dp"
                    android:layout_marginEnd="0dp"
                    android:background="?android:attr/windowBackground"
                    android:visibility="gone"
                    app:itemIconTint="@drawable/bottom_navigation_colors"
                    app:itemTextColor="@drawable/bottom_navigation_colors"
                    app:itemBackground="@color/white"
                    app:labelVisibilityMode="labeled"
                    app:menu="@menu/bottom_navigation" />

bottom_navigation_colors.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_checked="true"
        android:color="@color/dark_red" />
    <item
        android:state_checked="false"
        android:color="@color/black" />
</selector>


所选片段显示图标和文本,颜色为红色其他颜色为黑色

谢谢,先生,但我已经实现了这一行为,请查看我的代码
应用程序:itemIconTint=“@drawable/bottom\u navigation\u item\u colors”
。真正的问题是当我说“但问题是如果我现在的位置……”
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_checked="true"
        android:color="@color/dark_red" />
    <item
        android:state_checked="false"
        android:color="@color/black" />
</selector>