android - 项目底部导航视图的裁剪标题
问题描述
当使用设计库'com.android.support:design:28.0.0'
BottomNavigationView 错误地显示带有长文本的项目标题时:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".mvp.ui.activities.MainActivity">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="0dp"
android:layout_marginBottom="56dp"
android:layout_above="@+id/navigation"
android:id="@+id/fragmentContent" />
<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:labelVisibilityMode="labeled"
app:itemHorizontalTranslationEnabled="false"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation" />
</android.support.constraint.ConstraintLayout>
它看起来很奇怪,因为使用设计库时完全相同的代码会com.android.support:design:27.1.1
产生很好的结果:
这怎么可能?对于我尝试使用的新版本的库labelVisibilityMode
,但这没有帮助。
app:showAsAction="always"
也不起作用。有任何想法吗?
解决方案
更新材料库后,您需要使用
navigation_bar_item_large_label_view
而不是R.id.largeLabel
public void removePaddingFromNavigationItem() {
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.navigation_bar_item_large_label_view);
if (activeLabel instanceof TextView) {
activeLabel.setPadding(0, 0, 0, 0);
}
}
}
推荐阅读
- julia - Julia 中的函数链
- excel - 在单元格更新/更改时自动输入日期和时间
- javascript - 对象可以自己保存值并返回它
- php - Codeigniter 会话没有跨控制器保存值
- azure - Azure Function 方法名称是否重要?
- python - 替换 Python 字符串中的字符
- django - 如何在 Heroku 中使用 gettext
- r - 如何正确评估 R 波浪号表达式中的变量
- asp.net-core-mvc - 如何使用 .Net Core 2.2 MVC 处理自定义错误
- php - 如何在 Codeigniter 中应用 timestampdiff?