【问题标题】:Set active/inactive drawables for bottomavigationview为底部导航视图设置活动/非活动可绘制对象
【发布时间】:2018-12-05 22:48:55
【问题描述】:

我正在尝试为底部导航视图菜单项放置活动/非活动可绘制对象。通过 SO 中的几篇文章并在 Google 中浏览,我发现只有使用 app:itembackgroundColor 设置活动/非活动状态的颜色,我想要实现的是在选择时设置可绘制。

我试过这个菜单项

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

    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/home_navigation_view_home_selector"
        android:checked="false"
        android:title="@string/title_home" />

    <item
        android:id="@+id/navigation_dashboard"
        android:icon="@drawable/home_navigation_view_oppurtunity_selector"
        android:checked="false"
        android:title="@string/title_oppurtunity" />

    <item
        android:id="@+id/navigation_notifications"
        android:icon="@drawable/home_navigation_view_leads_selector"
        android:checked="false"
        android:title="@string/title_leads" />

    <item
        android:id="@+id/navigation_settings"
        android:icon="@drawable/home_navigation_view_settings_selector"
        android:checked="false"
        android:title="@string/title_settings" />

</menu>

在哪里

home_navigation_view_home_selector/
home_navigation_view_oppurtunity_selector/
home_navigation_view_leads_selector/
home_navigation_view_settings_selector 

是每个项目的选择器。

home_navigation_view_home_selector.xml

<selector 
 xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_home_selected" 
          android:state_checked="true" />
    <item android:drawable="@drawable/ic_home_black_24dp" />
</selector>

bottomnavigationview代码如下

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="?android:attr/windowBackground"
    android:foreground="?attr/selectableItemBackground"
    app:menu="@menu/navigation" />

但似乎不起作用。

任何帮助将不胜感激。

【问题讨论】:

  • 试试selected 而不是checked
  • @shiftpsh 但这个stackoverflow.com/questions/40325422/… 回答说要使用checked
  • @KlingKlang 我试过但没有改变
  • 您似乎根本没有使用checkable 项目。
  • @shiftpsh 我试过了,但没有改变

标签: android bottomnavigationview


【解决方案1】:

试试:

navigation.setItemIconTintList(null);

在您的代码中。

底部导航视图默认使用着色,因此您必须禁用它。

【讨论】:

  • 感谢它在设置为 state_checked 而不是 state_selected 后起作用
  • 谢谢!拯救了我的一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多