Używam bibliotek obsługi projektów w NavigationView
następujący sposób:
<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>
I ustawiłem to menu:
<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>
Czy istnieje sposób użycia NavigationView z układem zamiast menu?
android
android-design-library
navigationview
android-navigationview
Panayiotis Irakleous
źródło
źródło
Odpowiedzi:
Oto jak to rozwiązałem i działało idealnie:
<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>
źródło
Tak, możesz .... Tak jak ja ... Po prostu weź swój niestandardowy układ wewnątrz 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>
Powyższy kod działa dla mnie ... Ale nie zapomnij usunąć
app:menu
zNavigationView
. W przeciwnym razie będzie nakładał się na niestandardowy widok elementów menu.źródło
ListView
widoku podrzędnego, nie możesz używaćNavigationView's
nagłówka. Więc jeśli używaszListView
, możesz dodać headerView wListView
.