2016-07-02 9 views
6

Mam aplikację na Androida, która działa od kilku lat. Ostatnio odkryłem problem z ListView w aplikacji, który jest rozmazany podczas przewijania. Problem występuje tylko pod Androidem Marshmallow.Przewijanie listm z Androidem marshmallow jest rozmyte

Here is a screenshot of the ListView while scrolling

enter image description here

Każda pomoc będzie mile widziane.

Dzięki!

+0

Na jakim typie telefonu lub emulatora testujesz? Opublikuj swój kod adaptera. –

+1

Czy ustawienie tła okna na wartość null? –

+0

Nie wiem, jak to zrobić? Dzięki. –

Odpowiedz

0

Też miałem ten problem i, poprzez próbę i błąd, w końcu znalazłem rozwiązanie. Mam nadzieję, że to również będzie działać dla Ciebie. Wygląda na to, że jest to błąd w Marshmallow związany z paskiem przewijania w widokach listy. Miałem następujący zestaw właściwości w mojej aplikacji tematu i usuwanie tę właściwość ustalona rozmyte przewijanie:

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

Korzystanie true zamiast false również działa, ale nie jest konieczne, ponieważ jest to ustawienie domyślne. Odkryłem również (poprzez ślad i błąd), że używanie android:fastScrollEnabled="true" powoduje takie samo rozmycie, ale w oparciu o twój styl paska przewijania, wydaje się, że go nie używasz.

Podsumowując, nie należy używać android:fadeScrollbars. Jeśli to nie rozwiąże problemu, spróbuj grać z innymi stylami związanymi z paskiem przewijania, których możesz używać w swoim ListView, mając na uwadze, że style te mogą być częścią widoku bezpośrednio lub częścią działania lub motywu aplikacji.

1

Przedmowa: Przed tą wiadomością zamieściłem osobną odpowiedź, ale to rozwiązanie działało tylko na moim MotoX. Później odkryłem, że nie działa to dla mojej karty Galaxy Tab A. Odpowiedź wydaje się być bardziej uniwersalna:

Udało mi się naprawić rozmycie przewijania, definiując osobny styl ListView dla mojej aplikacji i określając inny dzielnik list. Tak więc, na mój wniosek motywu ustawić następująco:

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

Gdzie ListViewStyleNoBlur jest zdefiniowany jako:

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

I określono je w folderze values-v23 zasobami więc zmiana nie ma wpływu na wstępnie prawoślazu urządzeń.

Mój motyw aplikacji jest oparty na android:style/Theme.Light, dlatego też rodzicem stylu widoku listy jest android:style/Widget.ListView.White. Moja aplikacja min SDK to 8, dlatego używam takiego "starego" tematu. Zauważyłem też, że jeśli użyję "nowszego" motywu, takiego jak Holo, rozmycie nie istnieje.

Powiązane problemy