Я видел этот вопрос - Отображать значок в верхней части иконки нижней панели навигации и решил добавить свои собственные значки в мой bottomNavigationView. Во-первых, я создал специальный макет моего значка:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/counter_badge"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_gravity="top|center_horizontal"
android:layout_marginStart="20dp"
android:gravity="center"
android:textSize="12sp"
android:textStyle="bold"
android:ellipsize="end"
android:textAlignment="center"
android:textColor="@color/white"
android:padding="3dp"
android:background="@drawable/badge"/>
</FrameLayout>
затем я добавляю некоторую информацию в значок textView в моей деятельности:
BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);
BottomNavigationItemView itemView = (BottomNavigationItemView) menuView.getChildAt(0);
notificationBadge = LayoutInflater.from(this).inflate(R.layout.notification_badge, menuView, false);
TextView textView = notificationBadge.findViewById(R.id.counter_badge);
textView.setText("15");
itemView.addView(notificationBadge);
но, как я вижу, я могу работать только с одним элементом зрения, когда я пытался изменить с 0 на 1 элемент, я получил эту ошибку:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.support.design.internal.BottomNavigationMenuView.getChildAt(int)' on a null object reference
тогда я пытался использовать специальные идентификаторы предметов, но я получаю похожую ошибку. Может быть, кто-то знает, как добавлять значки в предметы, которые я хочу?