如何在选定的项目应用文本样式BottomNavigationView?我可以改变颜色,但无法弄清楚如何改变字体样式(如字体家庭或使其粗体/斜体)上选择菜单项。有没有办法只能用XML来做到这一点?
在样品图片上面我想只能搜索到在不同的字体和粗体。 MESSAGE和仪表板保持不变。
在活动的xml:
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="49dp"
android:background="?android:attr/windowBackground"
android:paddingBottom="5dp"
android:paddingTop="5dp"
app:itemIconTint="@color/bottom_nav_color"
app:itemTextColor="@color/bottom_nav_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation"/>
RES /菜单/ navigation.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_search"
android:icon="@drawable/ic_search"
android:title="SEARCH" />
<item
android:id="@+id/navigation_messages"
android:icon="@drawable/ic_question_answer"
android:title="MESSAGES" />
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="DASHBOARD" />
</menu>
RES /颜色/ bottom_nav_color.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/colorPrimary" />
<item android:state_checked="false" android:color="#666666"/>
</selector>
有属性称为itemTextAppearanceActive和itemTextAppearanceInactive在BottomNavigationView。只要创建在res /价值/ styles.xml样式:
<style name="BottomNavigation.ActiveItemTextAppearance" parent="TextAppearance.AppCompat">
<item name="android:textStyle">bold</item>
<item name="android:fontFamily">@font/whatever</item>
</style>
然后引用它BottomNavigationView:
app:itemTextAppearanceActive="@style/BottomNavigation.ActiveItemTextAppearance"
反之为不活动的项目。