Подтвердить что ты не робот

Как добавить значение уведомления для элемента NavigationView для Material Design Drawer?

Мой вопрос очень прост, как добавить значение значения уведомления элемента NavigationView для Material Design Drawer, как это?

enter image description here

Есть ли свойство в элементах меню для определения ящика?

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group
        android:checkableBehavior="single">

        <item
            android:id="@+id/drawer_home"
            android:checked="true"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/home"/>

        <item
            android:id="@+id/drawer_favourite"
            android:icon="@drawable/ic_favorite_black_24dp"
            android:title="@string/favourite"/>
        ...

        <item
            android:id="@+id/drawer_settings"
            android:icon="@drawable/ic_settings_black_24dp"
            android:title="@string/settings"/>

    </group>
</menu>
4b9b3361

Ответ 1

Это возможно с помощью NavigationView из версии 23 AppCompat-V7 с использованием представлений действий. 1. Создайте макет для счетчика, например. nav_drawer_counter.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:textColor="@color/colorPrimary"/>
  1. Добавьте ссылку на нее из каждого элемента, для которого вы хотите показать значение счетчика в menu/nav_drawer.xml (убедитесь, что вы используете пространство имен app):

    <item 
        ...
        app:actionLayout="@layout/activity_main_nav_drawer_menu_counter"
        />
    
  2. Добавьте метод для установки значения TextView например:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    ....
    setNavItemCount(R.id.nav_notifications, 10);
    }
    
    
    private void setNavItemCount(@IdRes int itemId, int count) {
    TextView view = (TextView) navigationView.getMenu().findItem(itemId).getActionView();
    view.setText(count > 0 ? String.valueOf(count) : null);
    }
    

Ответ 2

Oh Да... Вы можете изменить это значение счетчика.

Из изображений, предоставленных вами, он выглядит вживую, вы используете Ящик для рисования материалов Rudson Lima

В его библиотеке есть функция public void setNewCounterValue(int drawerItemPosition, int counterValue); внутри класса NavigationLiveo.

Надеюсь, что вы правильно используете его объект, чтобы вызвать эту функцию.

Лучшее из удачи...: -)

Ответ 4

Из некоторых исследований я обнаружил, что нет, нет никакого реального способа добавления уведомлений в ящик. Однако пример, показанный в "Создание ящика для навигации" в "Разработчиках", показывает, как принудительно перерисовывать каждый раз, когда он открывается (а также как реализовать это с помощью XML-листов меню). В нем нет подробных сведений о том, как добавлять уведомления, но для этого есть и другие источники.

Этот учебник - это еще одно учебное пособие "Как сделать навигационный ящик" с бонусом точной информации о том, как адаптировать адаптеры ListView кнопку уведомления. Я думаю, что это более чем вероятно то, что вы ищете.

Удачи! Надеюсь, что это поможет.