2015-11-13 3 views
4

согласно недавнему озера Ян размещатьNavigationView: настраиваемый макет элемента с приложением: actionLayout как?

И если вы еще не смотрели на NavigationView недавно, он фактически получил совсем обновления в версии 23.1.0 [1] с добавлением приложения: поддержка actionLayout для поддержка пользовательского вида.

Как использовать app:actionLayout в NavigationView?

Использование

<group android:checkableBehavior="single"> 
    <item 
     android:id="@+id/navigation_drawer_item_1" 
     android:icon="@drawable/ic_menu_1" 
     android:title="@string/navigation_drawer_item_1" 
     app:actionLayout="@layout/menu_test_1" 
     /> 
    <item 
     android:id="@+id/navigation_drawer_item_2" 
     android:icon="@drawable/ic_menu_2" 
     android:title="@string/navigation_drawer_item_2" 
     app:actionLayout="@layout/menu_test_1" 
     /> 
</group> 

с

<android.support.design.widget.NavigationView android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer"> 

Это не работает. Он показывает действиеLayout в правой части элемента. Также удаление android:icon и android:title похоже не работает.

Как я могу это исправить?

Благодарит вас С уважением

+0

ли вы получить решение? Даже я работаю с настройкой пункта меню в макете действий и, похоже, не работает –

+0

К сожалению, у меня еще нет решения ... Я думаю, что мы должны поместить pur custom recycler view в NavigationView ... – Rino

+0

отсутствует app: showAsAction = "всегда"? – jiawen

ответ

3

бьет эту проблему путем удаления любого текста из Android: название.

NavigationView:

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer" /> 

код меню (activity_main_drawer):

<?xml version="1.0" encoding="utf-8"?> 
<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/nav_item1" 
      app:showAsAction="always" 
      android:title="" 
      app:actionLayout="@layout/menu_item_layout" /> 
    </group> 
</menu> 

menu_item_layout:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView android:id="@+id/item_text" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center_vertical" 
     android:text="Item text" /> 
</RelativeLayout> 
+0

Как можно изменить текст счетчика в Java, в oncreate без изменений с .setText() – Webserveis

+0

См. Это для обновления счетчика https://stackoverflow.com/a/37613942/3496570 – Nepster