是否有可能成为一个文本? 或者甚至我可以隐藏图标,只显示项目标题?
Yes it's.
要控制切换
BottomNavigationView
的项目文本,请使用
app:itemTextColor
与一个自定义选择器
In your case you need to show up the text when an item is checked, and hide it otherwise.
要控制项目图标的切换,请使用
app:itemIconTint
和一个自定义选择器
In your case you need to show up the icon when an item is unchecked, and hide it otherwise.
对于文本/图标这两种情况,你可以使用透明色作为隐藏状态的黑客。
<com.google.android.material.bottomnavigation.BottomNavigationView
app:itemTextColor="@drawable/text_selector"
app:itemIconTint="@drawable/icon_selector"
text_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#FFEB3B" android:state_checked="true" />
<item android:color="@android:color/transparent" android:state_checked="false" />
</selector>
icon_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#FFEB3B" android:state_checked="false" />
<item android:color="@android:color/transparent" android:state_checked="true" />
</selector>
我以前试过,但我得到的结果是图标被隐藏,文字仍在底部
画面底部,而不是像你发送的GIF那样移到中间。
你可以通过改变BottomNavView
的文字大小来获得相同的行为。
创建以下样式来增加项目文本。
<style name="BottomNavigationViewActiveItemText" parent="@style/TextAppearance.AppCompat.Caption">
<item name="android:textSize">20sp</item>
</style>
Apply it to the BottomNavigationView
with app:itemTextAppearanceActive="@style/BottomNavigationViewActiveItemText"
如果你的项目文本可以分两行,也可以使用。
<style name="BottomNavigationStyle">