Sembra che sia un bug nella nuova libreria di progettazione supporto Android, controllare this thread in AOSP problema tracker, come accennato c'è un bug con sfondo elemento controllato - utilizza colorPrimaryDark
.
Fino a quando non sarebbe stato risolto ho trovato probabilmente brutto e forse irrilevante in futuro, ma semplice soluzione - NavigationView
utilizza colorPrimaryDark
per evidenziare la voce di fondo, in modo che possiamo semplicemente ignorare la sua android:theme
con cambiato colorPrimaryDark
a quello che abbiamo bisogno, nel nostro caso è grigio.
Quindi, primo luogo aggiungere un nuovo stile al vostro styles.xml
:
<style name="NavigationViewGraySelectorTheme" parent="AppTheme">
<!-- Extract this color to colors.xml -->
<item name="colorPrimaryDark">#ddd</item>
</style>
E poi semplicemente utilizzare nel vostro widget di NavigationView
:
<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/NavigationViewGraySelectorTheme"
app:headerLayout="@layout/nav_header_main"
app:itemIconTint="@color/nav_view_icon_color"
app:itemTextColor="@color/nav_view_text_color"
app:menu="@menu/activity_main_drawer"/>
UPDATE:
Come Chris Banes menzionato nello AOSP issue thread, il problema verrà risolto con la versione 24.1.1 di rilascio della libreria di supporto.
Ho approssimativamente un problema simile. Le selezioni nel mio cassetto di navigazione sono fatte con colorAccent invece di colorPrimaryDark, ma questa soluzione non funziona per me. Ho aggiunto NavigationViewGraySelectorTheme in styles.xml e v21 \ styles.xml e ho modificato il tema per NavigationView, ma continua a riempire completamente l'elemento selezionato con colorAccent dell'app. Ho provato a menzionare colorPrimaryDark e colorAccent in NavigationViewGraySelectorTheme – Sourabh86