BottomNavigationView - Android 工作室

BottomNavigationView - Android Studio

我使用图像作为图标,但我不希望它们在未被选中时看起来是灰色的。无论是否处于活动状态,它都应该看起来与图片相同。我该怎么办?

com.google.android.material.bottomnavigation.BottomNavigationView

谢谢

要实现它还有很长的路要走

mBottomNav.setItemIconTintList(null);

那就自己设计吧。不要忘记将按钮区分为已单击和未单击。

示例按钮 XML

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--Clicked-->
    <item android:drawable="@drawable/homeclicked" android:state_checked="true" />
    <!--Not Clicked-->
    <item android:drawable="@drawable/homenotclicked" android:state_checked="false" />
</selector>

并将它们添加到视图中:示例 bottom_navigation.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/homebuttons"
        android:icon="@drawable/homebuttonxml />

 <!--Other Buttons...-->

</menu>

最后,Link 查看 bottomnavigationview

<com.google.android.material.bottomnavigation.BottomNavigationView    
     android:id="@+id/bottomNavigationView"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     app:labelVisibilityMode="unlabeled"
     app:elevation="0dp"
     app:menu="@menu/bottom_navigation">  
   
</com.google.android.material.bottomnavigation.BottomNavigationView>

尝试在 BottomNavigationView 部分的 XML 文件中使用它

app:itemIconTint="null"

或者在定义 BottomNavigationView(使用 findViewById)

之后将其添加到您的 java 文件
//Replace BottomNavView with your nav bar id
BottomNavView.setItemIconTintList(null);

未选中项目使用的默认颜色基于 colorOnSurface 颜色。

只需使用:

<com.google.android.material.bottomnavigation.BottomNavigationView
     android:theme="@style/BottomNavigationViewThemeOverlay"
     ....  />

与:

<style name="BottomNavigationViewThemeOverlay">
    <item name="colorOnSurface">@color/...</item>
</style>

否则您可以定义自定义选择器:

  <com.google.android.material.bottomnavigation.BottomNavigationView
           app:itemIconTint="@color/bottomnavicontint"
           ../>

与:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:alpha="1.0" android:color="?attr/colorPrimary" android:state_checked="true"/>
    <item android:alpha="0.6" android:color="@color/..."/>. <!-- not selected -->
</selector>