CẬP NHẬT TỪ NGÀY 8 THÁNG 5 NĂM 2018
Bạn có thể sử dụng
app:labelVisibilityMode="labeled"
trực tiếp trong<android.support.design.widget.BottomNavigationView />
Nguồn: https://developer.android.com/reference/com/google/android/m vật liệu / bottomnavlation/LabelVisibilityMode
Đừng cần giải pháp dài dưới đây.
TRẢ LỜI TRƯỚC
Tôi đã có một số hành vi kỳ lạ với bottomNavlationView. Khi tôi đang chọn bất kỳ mục / đoạn nào trong đó, đoạn đó sẽ đẩy bottomNavestionView xuống thấp hơn một chút, do đó văn bản của bottomNavlationView nằm bên dưới màn hình, do đó chỉ có các biểu tượng được hiển thị và văn bản bị ẩn khi nhấp vào bất kỳ mục nào.
Nếu bạn đang phải đối mặt với hành vi kỳ lạ đó thì đây là giải pháp. Chỉ cần loại bỏ
android:fitsSystemWindows="true"
trong bố trí gốc của bạn của mảnh. Chỉ cần loại bỏ điều này và bùng nổ! BottomNavestionView sẽ hoạt động tốt, bây giờ nó có thể được hiển thị với văn bản và biểu tượng. Tôi đã có điều này trong Điều phối viên gốc của tôi.
Cũng đừng quên thêm
BottomNavigationViewHelper.removeShiftMode(bottomNavigationView);
trong hoạt động của bạn để vô hiệu hóa chế độ thay đổi.
Đây là lớp học:
public class BottomNavigationViewHelper {
@SuppressLint("RestrictedApi")
public static void removeShiftMode(BottomNavigationView view) {
//this will remove shift mode for bottom navigation view
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
try {
Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
shiftingMode.setAccessible(true);
shiftingMode.setBoolean(menuView, false);
shiftingMode.setAccessible(false);
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
item.setShiftingMode(false);
// set once again checked value, so view will be updated
item.setChecked(item.getItemData().isChecked());
}
} catch (NoSuchFieldException e) {
Log.e("ERROR NO SUCH FIELD", "Unable to get shift mode field");
} catch (IllegalAccessException e) {
Log.e("ERROR ILLEGAL ALG", "Unable to change value of shift mode");
}
}
}