Ich versuche, NavigationView zum Implementieren von NavigationDrawer zu verwenden. Ich habe das Trennzeichen hinzugefügt, indem ich die Gruppen-ID im Menü eingestellt habe. Ich kann jedoch das Trennzeichen nicht sehen. Ich vermute, es liegt daran, dass die Trennfarbe dieselbe ist wie der Hintergrund. Ich möchte also die Trennfarbe ändern. Aber ich finde keine Möglichkeit, es zu ändern. Kann mir jemand helfen?
Im Screenshot scheint es einen Raum für die Trennung zwischen History
und Settings
zu geben, aber Sie können es nicht sehen.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.DrawerLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/drawer_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:fitsSystemWindows="true"
tools:context=".ui.MapActivity">
<LinearLayout
Android:id="@+id/main_content"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<include layout="@layout/toolbar_actionbar" />
<!--main content-->
</LinearLayout>
<Android.support.design.widget.NavigationView
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:background="@color/navdrawer_background"
app:insetForeground="#4000"
app:itemTextColor="@color/navdrawer_item_text_color"
app:itemIconTint="@color/navdrawer_item_icon_tint"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/drawer"/>
</Android.support.v4.widget.DrawerLayout>
drawer.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<group Android:id="@+id/group_feature"
Android:checkableBehavior="single">
<item Android:id="@+id/navdrawer_item_map"
Android:checked="true"
Android:icon="@drawable/ic_drawer_map"
Android:title="@string/navdrawer_item_map"/>
<item Android:id="@+id/navdrawer_item_favourite"
Android:icon="@drawable/ic_drawer_fav"
Android:title="@string/navdrawer_item_fav"/>
<item Android:id="@+id/navdrawer_item_history"
Android:icon="@drawable/ic_drawer_history"
Android:title="@string/navdrawer_item_history"/>
</group>
<group Android:id="@+id/group_settings"
Android:checkableBehavior="single">
<item Android:id="@+id/navdrawer_item_settings"
Android:icon="@drawable/ic_drawer_settings"
Android:title="@string/navdrawer_item_settings"/>
<item Android:id="@+id/navdrawer_item_help"
Android:icon="@drawable/ic_drawer_help"
Android:title="@string/navdrawer_item_help"/>
<item Android:id="@+id/navdrawer_item_about"
Android:icon="@drawable/ic_drawer_about"
Android:title="@string/navdrawer_item_about"/>
</group>
</menu>
wenden Sie einfach die folgende Zeile in style.xml an
<item name="Android:listDivider">your_color</item>
Im Folgenden finden Sie nur Informationen zu Ihrem Wissen ... Wenn Sie eine Bibliothek zur Entwurfsunterstützung gesehen haben, verwenden sie das folgende Layout für den NavigationView-Separator.
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<View Android:layout_width="match_parent"
Android:layout_height="1dp"
Android:background="?android:attr/listDivider"/>
</FrameLayout>
hier können Sie sehen Android: background = "android: attr/listDivider" .. Also viel Spaß ... Und hier ist meine Ausgabe, dass ich die Farbe in holo_blue
Hier ist der beste und einfachste Weg, wenn Sie das Menü als Ansicht verwenden
<Android.support.design.widget.NavigationView
Android:id="@+id/nav_view"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:fitsSystemWindows="true"
Android:theme="@style/ThemeToolbar.NavigationView"
app:itemTextColor="@color/white"
app:itemIconTint="@color/white"
app:headerLayout="@layout/activity_home_nav_header"
app:menu="@menu/activity_home_drawer" />
ThemeToolbar.NavigatinoView
<style name="ThemeToolbar.NavigationView" >
<item name="Android:listDivider">@color/white</item>
<item name="Android:textColorSecondary">@color/white</item>
</style>
Erstellen Sie einen Stil in Ihrer styles.xml. Geben Sie Ihre bevorzugte Farbe im Android: listDivider ein
<style name="NavigationView" parent="Base.Theme.AppCompat">
<item name="Android:listDivider">@color/text_lightgray</item>
</style>
Referenzieren Sie den Stil als Thema Ihrer Navigationsansicht:
<Android.support.design.widget.NavigationView
Android:id="@+id/nav_view"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:fitsSystemWindows="false"
Android:theme="@style/NavigationView"
app:headerLayout="@layout/nav_header"
app:menu="@menu/drawer_view"
app:itemTextColor="@color/text_white"/>
Vergewissern Sie sich schließlich, dass die Gruppen in Ihrem Menü eindeutige IDs haben. Wenn Ihre Gruppen nicht das id-Attribut haben, funktioniert dies nicht!
<group Android:checkableBehavior="single"
Android:id="@+id/group1">
<item
Android:id="@+id/item1"
Android:title="@string/item1" />
</group>
<group Android:checkableBehavior="single"
Android:id="@+id/group2">
<item
Android:id="@+id/item2"
Android:title="@string/item2" />
</group>
sie müssen eine leere Kopfzeile als Trennzeichen hinzufügen.
mögen
<group Android:id="@+id/my_id">
<!-- Divider will appear above this item -->
<item ... />
</group>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="Android:textColorPrimary">@color/menu_text_color</item>
<item name="Android:textColorSecondary">@color/menu_text_color</item>
</style>
textColorPrimary ändert die Farbe der Kopfzeile.
Perfekte Antwort:
<Android.support.design.widget.NavigationView
Android:id="@+id/activity_principal_nav_view"
Android:layout_width="@dimen/size_230"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:background="@color/black"
Android:fitsSystemWindows="true"
app:insetForeground="@color/white"
app:menu="@menu/settings_menu"
app:itemTextColor="@color/white"
app:itemIconTint="@color/white"
app:headerLayout="@layout/settings_menu_header"
Android:theme="@style/NavigationDrawerStyle"/>