8 MAYIS 2018 TARİHİNDEN İTİBAREN GÜNCELLEME
app:labelVisibilityMode="labeled"
Doğrudan kullanabilirsiniz
<android.support.design.widget.BottomNavigationView />
Kaynak: https://developer.android.com/reference/com/google/android/material/bottomnavigation/LabelVisibilityMode
Uzun çözümün altında buna ihtiyacınız yok.
ÖNCEKİ CEVAP
BottomNavigationView ile bazı garip davranışlar yaşadım. İçinde herhangi bir öğeyi / parçayı seçtiğimde, parça BottomNavigationView'ı biraz daha aşağıya iter, bu nedenle BottomNavigationView metni ekranın altına gider, böylece herhangi bir öğeye tıklandığında yalnızca simgeler görünür ve metin gizlenir.
Bu tuhaf davranışla karşı karşıyaysanız, işte çözüm. Sadece kaldır
android:fitsSystemWindows="true"
kök parça düzeninizde. Sadece bunu kaldır ve bum! BottomNavigationView iyi çalışacak, şimdi metin ve simge ile gösterilebilir. Bunu, kök Koordinatörümde parça düzeni vardı.
Ayrıca eklemeyi unutmayın
BottomNavigationViewHelper.removeShiftMode(bottomNavigationView);
etkinliğinizde vites modunu devre dışı bırakmak için.
İşte o sınıf:
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");
}
}
}