更新实现'com.android.support:design:28.0.0'后,此item.setShiftingMode(false);已被删除

时间:2018-11-29 06:43:06

标签: android android-studio

在更新28.0.0之后,我删除了item.setShiftingMode(false);,然后将此app:labelVisibilityMode="labeled"添加到了xml中。

但是图标显示正确,但是标签被剪掉了仅显示一半的长文本

示例enter image description here

性能下降请给我建议,谢谢您的进步。

2 个答案:

答案 0 :(得分:0)

嗨,大家好,我找到了更改文本大小的解决方案,但我无法确定这是否正确。现在,无论如何解决我的问题,都可以按照我的示例进行。 这些行添加您的style.xml文件:

 <style name="BottomNavigationView">
    <item name="itemTextAppearanceActive">@style/TextAppearance.BottomNavigationView.Active</item>
    <item name="itemTextAppearanceInactive">@style/TextAppearance.BottomNavigationView.Inactive</item>
</style>
<style name="TextAppearance"/>
<style name="TextAppearance.BottomNavigationView"/>
<style name="TextAppearance.BottomNavigationView.Inactive">
    <item name="android:textSize">12sp</item>
</style>
<style name="TextAppearance.BottomNavigationView.Active">
    <item name="android:textSize">11sp</item>
</style>

然后将此行添加到“底部导航”视图中:

style="@style/BottomNavigationView"

这才是真正的工作 enter image description here

答案 1 :(得分:0)

显然,此问题已得到here的注册和跟踪,并且是由于不必要的填充所致,因此,您可以使用下面的代码来删除该填充。

BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);   
 for (int i = 0; i < menuView.getChildCount(); i++) {
        BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
        View activeLabel = item.findViewById(R.id.largeLabel);
        if (activeLabel instanceof TextView) {
            activeLabel.setPadding(0, 0, 0, 0);
        }
    }
}