次のようなデザインサポートライブラリNavigationView
を使用しています。
<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>
そして、私はこのメニューを設定しました:
<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>
メニューではなくレイアウトでNavigationViewを使用する方法はありますか?
前もって感謝します
ここに私がそれを解決し、完璧に働いた方法があります:
<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>
はい、できます....私がやったように...カスタムレイアウトを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>
上記のコードは私のために動作します...しかしNavigationView
からapp:menu
を削除することを忘れないでください。そうしないと、メニュー項目のカスタムビューと重なります。