Saya ingin pembagi di atas item pertama dan setelah item terakhir. Menggunakan solusi @Nilesh saya harus menambahkan item menu dummy dan mengatur diaktifkan ke false yang terasa sangat kotor. Plus bagaimana jika saya ingin melakukan hal-hal keren lainnya di menu saya?
Saya perhatikan NavigationView memperluas FrameLayout sehingga Anda dapat memasukkan konten Anda sendiri seperti yang Anda lakukan untuk FrameLayout. Saya kemudian mengatur menu kosong xml sehingga hanya menampilkan tata letak khusus saya. Saya mengerti bahwa ini mungkin bertentangan dengan jalur yang Google inginkan untuk kami ambil, tetapi jika Anda menginginkan menu yang benar-benar khusus, ini adalah cara mudah untuk melakukannya.
<!--Note: NavigationView extends FrameLayout so we can put whatever we want in it.-->
<!--I don't set headerLayout since we can now put that in our custom content view-->
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:menu="@menu/empty_menu">
<!--CUSTOM CONTENT-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- CUSTOM HEADER -->
<include
android:id="@+id/vNavigationViewHeader"
layout="@layout/navigation_view_header"/>
<!--CUSTOM MENU-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_below="@+id/vNavigationViewHeader">
<View style="@style/NavigationViewLineSeperator"/>
<Button android:text="Option 1"/>
<View style="@style/NavigationViewLineSeperator"/>
<Button android:text="Option 2"/>
<View style="@style/NavigationViewLineSeperator"/>
</LinearLayout>
</RelativeLayout>
</android.support.design.widget.NavigationView>
Inilah gayanya
<style name="NavigationViewLineSeperator">
<item name="android:background">@drawable/line_seperator</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
</style>
Dan mudah digambar
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white"/>
<size android:width="100sp"
android:height="1sp" />
</shape>
Dan menunya
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
</menu>
edit:
Alih-alih Tombol Anda dapat menggunakan TextView dengan drawable yang meniru item menu asli terlihat:
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/menu_support"
android:drawableLeft="@drawable/menu_icon_support"
style="@style/MainMenuText" />
// style.xml
<style name="MainMenuText">
<item name="android:drawablePadding">12dp</item>
<item name="android:padding">10dp</item>
<item name="android:gravity">center_vertical</item>
<item name="android:textColor">#fff</item>
</style>