Estoy usando las Bibliotecas de soporte de diseños NavigationView
como esta:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true">
<!-- put your main layout here -->
<include layout="@layout/drawer_main_layout"/>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/drawer_view"/>
</android.support.v4.widget.DrawerLayout>
Y he configurado este menú:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_dashboard"
android:title="Home" />
<item
android:id="@+id/nav_messages"
android:icon="@drawable/ic_event"
android:title="Messages" />
<item
android:id="@+id/nav_friends"
android:icon="@drawable/ic_headset"
android:title="Friends" />
<item
android:id="@+id/nav_discussion"
android:icon="@drawable/ic_forum"
android:title="Discussion" />
</group>
<item android:title="Sub items">
<menu>
<item
android:icon="@drawable/ic_dashboard"
android:title="Sub item 1" />
<item
android:icon="@drawable/ic_forum"
android:title="Sub item 2" />
</menu>
</item>
</menu>
¿Hay alguna forma de usar NavigationView con un diseño en lugar de un menú?
android
android-design-library
navigationview
android-navigationview
Panayiotis Irakleous
fuente
fuente
Respuestas:
Así es como lo resolví y funcioné perfectamente:
<android.support.design.widget.NavigationView android:id="@+id/navigation" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include layout="@layout/nav_header" /> <ListView android:id="@+id/lst_menu_items" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout> </android.support.design.widget.NavigationView>
fuente
Sí, puede ... Como yo lo he hecho ... Simplemente tome su diseño personalizado dentro de NavigationView
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.NavigationView android:id="@+id/navView" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start"> <ListView android:entries="@array/test" android:layout_width="match_parent" android:layout_height="match_parent"/> </android.support.design.widget.NavigationView> </android.support.v4.widget.DrawerLayout>
El código anterior funciona para mí ... Pero no olvide eliminar
app:menu
deNavigationView
. De lo contrario, se superpondrá a su vista personalizada en los elementos del menú.fuente
ListView
una vista secundaria, no puede usarNavigationView's
Header. Entonces, si está utilizandoListView
, puede agregar headerView en formatoListView
.