Ich habe eine Navigationsansicht, die ich entsprechend der Antwort, die ich von einer API-Anfrage erhalte, dynamisch bevölkere. Also muss ich die meisten Menüpunkte programmatisch gestalten.NavigationView MenuItems Holo-Indikator programmgesteuert anzeigen
Mein Ziel ist es, die Anzeige (gelb vertikale Streifen) in der linken Seite hinzufügen, wenn ein Menüpunkt markiert ist, wie in diesem Bild:
Hier ist mein Code bisher:
.xml
<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"
app:headerLayout="@layout/nav_header_main"
app:itemIconTint="@drawable/drawer_item"
app:itemTextColor="@drawable/drawer_item"
app:itemBackground="@drawable/background_item"/>
.java-
for (SettingsMenuItem item : items) {
if (!item.getMenu().isEmpty()) {
span = new SpannableString(subItem.getTitle());
span.setSpan(new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER), 0, span.length(), 0);
menu.add(NONE,NONE, items.indexOf(subItem), span).setCheckable(true).setChecked(false);;
}
}
menu.getItem(selectedItemID).setChecked(true);
Danke für Ihren Beitrag. Wie kann ich diese Ansicht programmatisch zum Menüeintrag hinzufügen? und wie setzt man die Schwerkraft nach links? – M20
Ich würde vorschlagen, anstelle von SettingsMenuItem erstellen Sie Ihre benutzerdefinierte Schublade Layout, da es mehrere Dinge in dem Screenshot, die Sie erwähnt haben. Um Ihr benutzerdefiniertes Schubladenlayout zu erstellen, entfernen Sie NavigationView vollständig und erstellen Sie das oben genannte Layout, das im Screenshot erwähnt wird, und initialisieren Sie die Steuerelemente im Code dahinter. Hoffe, das ist klar. Wenn nicht, lass mich wissen, dass ich dann ein Code-Snippet posten werde –