我有一个底部导航视图,它根据是否选中状态设置图标。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/icon_tree"
android:title="Tree"
android:icon="@drawable/bottomnav_icon_home">
</item>
</menu>
bottomnav_icon_home:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_home_black" android:state_checked="false"/>
<item android:drawable="@drawable/icon_home_green" android:state_checked="true"/>
</selector>
当android:state_checked为真时,底部导航将自动突出显示图标。
如何完全禁用底部导航的图标选择高亮显示?
我尝试过将app:itemIconTint="@drawable/bottom_navigation_selector"
设置为@null
,但是这不起作用
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:menu="@menu/bottom_navigation_menu"
android:background="@color/colorWhite"
app:itemTextColor="@drawable/bottom_navigation_selector"
app:itemIconSize="28dp"
app:itemIconTint="@drawable/bottom_navigation_selector"
app:labelVisibilityMode="labeled"/>
bottom_navigation_selector:
<?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/forestGreen" />
<item android:color="@color/colorBlack" />
</selector>
发布于 2020-02-06 05:36:24
如果我对你的理解是对的,android默认会在你选择的底部导航图标上设置一个色调,你会希望它被正确地删除。
不过,我知道如何在java类(而不是xml )中这样做。
您需要将setItemIconTintList
方法的BottomNavigationView
设置为null
。因此,在设置布局的地方,将代码编写为:
BottomNavigationView btmNav = findViewById(R.id.bottom_navigation);
btmNav.setItemIconTintList(null);
如果这对你有用,请告诉我们。
发布于 2020-02-05 21:30:50
尝试在dimens.xml中添加这一行
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">@dimen/design_bottom_navigation_text_size</dimen>
发布于 2021-04-23 19:19:54
您可以创建自定义样式。
有两个步骤。
1-在可绘图文件夹中创建自定义bottom_navigation_bar_icon_color.xml
。这是显示突出显示或默认图标的选择器。因此,您可以高亮显示所有的图标或显示为默认。在创建bottom_navigation_bar_icon_color.xml
时,请选择以下内容之一
突出显示的<item android:alpha="1.0" android:color="?attr/colorOnPrimary" android:state_checked="true"/>
<item android:alpha="0.6" android:color="?attr/colorOnPrimary"/>
bottom_navigation_bar_icon_color.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="0.6" android:color="?attr/colorOnPrimary"/>
</selector>
2-向themes.xml或styles.xml添加以下自定义样式。bottom_navigation_bar_icon_color
在itemIconTint和itemTextColor中的应用
<style name="BottomNavigationThemeCustom">
<item name="enforceTextAppearance">true</item>
<item name="enforceMaterialTheme">true</item>
<item name="android:background">?attr/colorPrimary</item>
<item name="itemIconTint">@drawable/bottom_navigation_bar_icon_color</item>
<item name="itemRippleColor">@color/mtrl_navigation_bar_colored_ripple_color</item>
<item name="itemTextAppearanceInactive">?attr/textAppearanceCaption</item>
<item name="itemTextAppearanceActive">?attr/textAppearanceCaption</item>
<item name="itemTextColor">@drawable/bottom_navigation_bar_icon_color</item>
</style>
3-使用您的新风格的bottomNavigationBar
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigation"
style="@style/BottomNavigationThemeCustom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible"
app:labelVisibilityMode="unlabeled"
app:menu="@menu/bottom_menu" />
4-如果要隐藏滚动版上的bottomNavigationBar,请向bottomNavigationBar添加以下属性
app:layout_behavior="com.google.android.material.behavior.HideBottomViewOnScrollBehavior"
https://stackoverflow.com/questions/59997254
复制相似问题