2016-07-02 42 views
6

Ho un'applicazione Android che è in esecuzione in produzione da diversi anni. Ultimamente, ho scoperto un problema con una ListView nell'app, che diventa sfocata durante lo scorrimento. Il problema si verifica solo con Android Marshmallow.Android marshmallow listview lo scorrimento diventa sfocato

Here is a screenshot of the ListView while scrolling

enter image description here

Qualsiasi aiuto sarebbe molto apprezzato.

Grazie!

+0

Che tipo di telefono o emulatore stai testando? Pubblica il tuo codice adattatore. –

+1

Stai impostando lo sfondo della finestra su null? –

+0

Non sono sicuro, come faccio? Grazie. –

risposta

0

Ho anche avuto questo problema e, attraverso tentativi ed errori, ho finalmente trovato una soluzione. Spero che funzionerà anche per te. Questo sembra essere un bug in Marshmallow relativo alla barra di scorrimento nelle visualizzazioni elenco. Ho avuto il seguente insieme di proprietà nel mio tema di applicazione e rimozione di questa proprietà fissa lo scorrimento sfocata:

<item name="android:fadeScrollbars">false</item> 

Utilizzando true invece di false funziona anche, ma è inutile dal momento che è il default. Ho anche scoperto (tramite trail-and-error) che l'utilizzo di android:fastScrollEnabled="true" causa la stessa sfocatura, ma in base allo stile della barra di scorrimento, non sembra che lo stiate usando.

In breve, non utilizzare android:fadeScrollbars. Se ciò non risolve il problema, prova a giocare con altri stili correlati alla barra di scorrimento che potresti utilizzare su ListView, tenendo presente che questi stili possono essere parte della vista direttamente o parte di un'attività o di un tema applicativo.

1

Prefazione: Ho inviato una risposta separata prima di questa, ma quella soluzione funzionava solo sul mio MotoX. Successivamente ho scoperto che non funzionava per il mio Galaxy Tab A. La risposta qui sembra essere più universale:

Sono stato in grado di correggere la sfocatura dello scorrimento definendo uno stile ListView separato per la mia applicazione e specificando un separatore di elenco diverso. Così, per il mio tema di applicazione ho impostato questo:

<item name="android:listViewStyle">@style/ListViewStyleNoBlur</item> 

Dove ListViewStyleNoBlur è definito come:

<style name="ListViewStyleNoBlur" parent="@android:style/Widget.ListView.White"> 
    <item name="android:divider">@android:drawable/divider_horizontal_bright</item> 
</style> 

ho specificato questi in una cartella values-v23 risorse in modo che la modifica non influisce dispositivi-Marshmallow pre.

Il tema della mia applicazione si basa su android:style/Theme.Light, motivo per cui il mio genitore di stile vista elenco è android:style/Widget.ListView.White. La mia app min SDK è 8, motivo per cui sto usando un tema così "vecchio". Ho anche notato che se uso un tema "più recente", come Holo, la sfocatura non esiste.