NavigationViewメニュー項目に分割線を追加

3502 ワード

NavigationViewメニュー項目に分割線を追加
実はこの文章は少し短くて、短いのは一言で言ったかもしれないので、もっと話します.
メニュー項目に分割線を追加するのはどういう意味ですか?下図を見て(図ソースstackoverflow)
上記の画像では、各メニュー項目の間に分割線があることがよくわかりますが、画像のように頻繁に使われているのを見ないと自分次第です.
では、この効果はどうすればいいのでしょうか.ネット上で検索してみると、xmlファイルを書く人もいればjavaコードで実現する人もいますが、グーグルの公式ドキュメントにもどのように実現するかは説明されていません.実はそんなに面倒ではありません.ネット上には清新で俗っぽい方法が現れています.壁が割れて推薦されています.私は他の方法の実現を見たくありません.では、この方法はいったい何なのでしょうか.
グループにユニークなidをつければいい
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <group android:id="@+id/grp1" android:checkableBehavior="single" >
        <item
            android:id="@+id/navigation_item_1"
            android:checked="true"
            android:icon="@drawable/ic_home"
            android:title="@string/navigation_item_1" />
    group>

    <group android:id="@+id/grp2" android:checkableBehavior="single" >
        <item
            android:id="@+id/navigation_item_2"
            android:icon="@drawable/ic_home"
            android:title="@string/navigation_item_2" />
    group>
menu>

上のコードに示すように、グループごとに独自のidが付いているので、分割線が自動的に現れ、原因はなぜ、元の答えが引用を削除したのか分からない.
ここでは、上の画像で見たように、この分割線が現れたので、paddingがたくさん出て間隔を置いていますが、クリックすると、この効果が面白くなく、深い部分がエリア全体に埋まっていないことが明らかになります.では、これはどうすればいいのでしょうか.
自分のdimes.xmlにデザインを再ロードすれば簡単ですnavigaiton_separator_vertical_paddingのdimesでいい
 <dimen name="design_navigation_separator_vertical_padding">0dpdimen>

具体的な理由は,ソースコードの90−91行のこの関数から分かる.