2016-09-19 2 views
2

Я использую навигационное представление для слайдера, а также параметры настройки, используя app:menu. Я хочу показать количество уведомлений на значке меню. Я указал android:actionLayout в меню xml, но он показывает значок справа от названия, но я хочу его в правом верхнем углу значка.
Мой код выглядит так:значок с изображением навигация по Android

<android.support.design.widget.NavigationView 
     android:id="@+id/navigation" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="end" 
     android:background="?attr/colorPrimary" 
     app:headerLayout="@layout/navigation_header" 
     app:itemIconTint="@android:color/white" 
     app:itemTextColor="@android:color/white" 
     app:menu="@menu/menu_main" /> 

main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<group 
    android:checkableBehavior="single"> 
    . 
    . 
    . 
    . 
    <item 
     android:id="@+id/drawer_notification" 
     android:icon="@drawable/menu_notfication" 
     app:actionViewClass="android.widget.TextView" 
     android:actionLayout="@layout/menu_counter" 
     android:title="Notification"/> 
    <item 
     android:id="@+id/drawer_settings" 
     android:icon="@drawable/menu_setting" 
     android:title="Settings"/> 
    <item 
     android:id="@+id/drawer_faq_help" 
     android:icon="@drawable/menu_faq" 
     android:title="FAQ and Help"/> 

    . 
    . 
    .  
</group> 

menu_counter.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:background="@drawable/circle_bagde" 
    android:gravity="center_vertical" 
    android:padding="5dp" 
    android:text="12" 
    android:textColor="@android:color/white" 
    android:textSize="16sp" /> 

Я хочу, чтобы это так:
enter image description here

ответ

0

Вы можете использовать SublimeNavigationView для этого.

Если вы не хотите использовать сторонний ящик, вы можете создать навигационный ящик с RecyclerView или ListView вместо NavigationView. и вы можете легко настроить RecyclerView или ListView.

1

Вы также можете настроить NavigationView.

Просто используйте код, как показано ниже.

<android.support.design.widget.NavigationView 
    android:layout_width="300dp" 
    android:layout_gravity="start" 
    android:id="@+id/navigationView" 

    android:layout_height="match_parent"> 

    <include layout="@layout/drawer_layout"/> 
</android.support.design.widget.NavigationView> 

Сейчас в включает тег, добавить макет с переработчиком и onCreateView в recyclerView дает ресайклеру раскладку вы хотите и установить любые значения, которые вы хотите установить в onBind метода, как вы делаете обычно.

Просто не забудьте вызвать findViewById для переработчика в навигации. Например: navigationView.findViewById (R.id.recyclerVIew)

Смежные вопросы