7

实现一个 5 项 BottomNavigationView - 始终显示标签 - 我使用以下方法:

<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/navigation"
        app:labelVisibilityMode="labeled"/>

不幸的是,结果在活动时会连字,如图所示:

带连字符的活动标签

我尝试为标签的活动文本设置不同的样式:

app:itemTextAppearanceActive="@style/text_navigation_active_labels"

-- 样式.xml --

<style name="text_navigation_active_labels">
    <item name="android:breakStrategy">simple</item>
    <item name="android:hyphenationFrequency">none</item>
</style>

但结果是完全一样的(无论我是只使用中断策略、连字符频率还是两者都使用)。我目前正在 API 27 物理电话上对其进行测试。

任何帮助表示赞赏。

4

1 回答 1

12

由于 5 个项目可能会占用大量空间,因此有必要妥协文本大小。为了修复它,向 BottomNavigationView 文本添加自定义样式即可完成工作:

 <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        ...
        app:itemTextAppearanceActive="@style/navTextActive"
        app:itemTextAppearanceInactive="@style/navTextInactive"/>

在样式.xml 上:

<style name="navTextInactive">
    <item name="android:textSize">11sp</item>
</style>

<style name="navTextActive">
    <item name="android:textSize">12sp</item>
</style>

结果:

固定导航栏

希望它可以帮助那里的任何人!

于 2018-09-08T01:54:53.767 回答