如何设置BottomNavigationView letterSpacing?

时间:2018-08-12 10:36:33

标签: android kotlin bottomnavigationview

在TextView中,我可以使用android:letterSpacing="0.1"设置字母间距

但这在BottomNavigationView中不起作用

我使用此代码设置BottomNavigationView的字体样式

我想我也可以在这里设置字母间距,但是找不到相关的方法

如何设置字母间距?

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="0dp"
    android:layout_marginStart="0dp"
    app:menu="@menu/navigation" >

val font = Typeface.createFromAsset(assets, "UniversNextPro-LightCond.otf")
val typefaceSpan = CustomTypefaceSpan("", font)
navigation.menu.size()
for (i in 0 until navigation.menu.size()) {
    val menuItem = navigation.menu.getItem(i)
    val spannableTitle = SpannableStringBuilder(menuItem.getTitle())
    spannableTitle.setSpan(typefaceSpan, 0, spannableTitle.length, 0)
    menuItem.setTitle(spannableTitle)
}

1 个答案:

答案 0 :(得分:2)

我能够通过这种方式做到这一点:

  1. 创建父项为Widget.Design.BottomNavigationView的样式
<style name="BottomNavigationTheme" parent="Widget.Design.BottomNavigationView">
    <item name="android:letterSpacing">0.1</item>
</style>
  1. 将样式设置为底部导航视图的主题
<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="0dp"
    android:layout_marginStart="0dp"
    android:theme="@style/BottomNavigationTheme"
    app:menu="@menu/navigation" >