BottomNavigationView - 如何更改菜单项字体?

sor*_*dam 3 android bottomnavigationview

我正在使用BottomNavigationView来管理片段.是否有一个简单的变更标签项字体解决方案?我使用了SpannableStringBuilder.但它不起作用.

       for (int i = 0; i < bottomBar.getMenu().size(); i++) {
            MenuItem menuItem = binding.bottomBar.getMenu().getItem(i);
            SpannableStringBuilder title = new SpannableStringBuilder(menuItem.getTitle());
            title.setSpan(mTypeface, 0, title.length(), 0);
            menuItem.setTitle(title);
        }
Run Code Online (Sandbox Code Playgroud)

sor*_*dam 8

最后我找到了解决方案 首先我找到了CustonTypefaceSpan类.CustomTypefaceSpan从TypefaceSpan类扩展而来.你可以查看这个答案.

        CustomTypefaceSpan typefaceSpan = new CustomTypefaceSpan("", mTypeface);
        for (int i = 0; i <bottomBar.getMenu().size(); i++) {
            MenuItem menuItem = bottomBar.getMenu().getItem(i);
            SpannableStringBuilder spannableTitle = new SpannableStringBuilder(menuItem.getTitle());
            spannableTitle.setSpan(typefaceSpan, 0, spannableTitle.length(), 0);
            menuItem.setTitle(spannableTitle);
        }
Run Code Online (Sandbox Code Playgroud)