【问题标题】:Bottom Navigation Not showing original color底部导航不显示原始颜色
【发布时间】:2021-01-07 18:03:28
【问题描述】:

我为我的应用程序设计了一个底部导航视图。这个想法很简单,绿色底栏将有白色图标。我为此写了一个选择器

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

     <item android:state_checked="false" android:color="@android:color/white" />
     <item android:color="@android:color/holo_blue_dark"  />
  </selector>

它起作用了,它改变了图标的颜色,但它并没有使它完全变白,颜色看起来是灰色的。 我也尝试过&lt;item android:state_selected="true" android:color="@android:color/white" /&gt;,但它也不起作用。我已经添加了下面的图片让你看看有什么不同。

请帮忙

【问题讨论】:

    标签: android android-xml android-bottomnav android-bottomnavigationview


    【解决方案1】:

    如果您希望您的图标具有相同的默认颜色,请在您的活动中使用它。

    bottomNavigation.setItemIconTintList(null);
    

    【讨论】:

      【解决方案2】:

      你应该使用 state_selected

      <selector xmlns:android="http://schemas.android.com/apk/res/android">
         <item android:state_selected="true"
            android:color="@color/color1" />
         <item android:color="@color/color2" />
      </selector>
      

      app:itemIconTint="@color/navigate_state"

      【讨论】:

      • 检查我的完整问题。我已经提到我也尝试过这个。没有运气
      • 我已经使用了选择器。你的选择器在哪里。我看到了你的问题。
      • 选择器必须在颜色文件夹中。
      • 我知道,它只在颜色文件夹中。如果选择器中有错误,那么它根本不起作用。目前它显示暗淡的颜色
      • 所以你检查你的BottomNavigationView。你使用任何样式吗?
      【解决方案3】:
      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
          <item android:state_checked="true" android:color="@android:color/holo_blue_dark" />
          <item android:color="@android:color/darker_gray"  />
      </selector>
      

      和种类

      add it on android.support.design.widget.BottomNavigationView app:itemIconTint="@drawable/nav_item_color_state" app:itemTextColor="@drawable/nav_item_color_state" 
      

      【讨论】:

      • 我做了.. 它不工作。您可以看到它正在将颜色更改为白色,但白色一点也不脆。它看起来像一个叠加层。
      【解决方案4】:

      如果您使用 com.google.android.material 中的 BottomNavigationView,则应特别为图标和文本指定颜色,例如:

      <com.google.android.material.bottomnavigation.BottomNavigationView
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:background="@color/background"
              app:itemIconTint="@color/bottom_bar_icon_tint"
              app:itemTextColor="@color/bottom_bar_icon_tint"
              app:menu="@menu/navigation_menu" />
      

      和bottom_bar_icon_tint.xml:

      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
          <item android:state_checked="true" android:color="@color/white" />
          <item android:color="@color/cool_grey"  />
      </selector>
      

      还要注意:android:state_checked="true"

      【讨论】:

      • 我做了.. 它不工作。您可以看到它正在将颜色更改为白色,但白色一点也不脆。它看起来像一个叠加层。
      • 如果将白色更改为另一种颜色会发生什么?尝试来自colors.xml而不是来自android资源的一些自己的颜色。
      【解决方案5】:

      您的 xml 文件似乎具有 alpha 通道/透明度

      您需要将“android:alpha”参数更改为“1.0”或在您的 icon.xml 中将其删除

      <vector xmlns:android="http://schemas.android.com/apk/res/android"
      android:width="24dp"
      android:height="24dp"
      android:viewportWidth="24"
      android:viewportHeight="24"
      android:tint="@color/white"
      android:alpha="0.8">
      
      <path
        android:fillColor="@color/white"
        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM6.5,17.5l7.51,-3.49L17.5,6.5 9.99,9.99 6.5,17.5zM12,10.9c0.61,0 1.1,0.49 1.1,1.1s-0.49,1.1 -1.1,1.1 -1.1,-0.49 -1.1,-1.1 0.49,-1.1 1.1,-1.1z"/>
      

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-31
        • 2021-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多