2016-07-02 23 views
6

Tôi có một ứng dụng Android đang chạy trên sản xuất trong nhiều năm. Gần đây, tôi đã phát hiện ra một vấn đề với một ListView trong ứng dụng, mà bị mờ trong khi di chuyển. Sự cố chỉ xảy ra trong Android Marshmallow.Android marshmallow listview cuộn bị mờ

Here is a screenshot of the ListView while scrolling

enter image description here

Bất kỳ trợ giúp sẽ được nhiều đánh giá cao.

Cảm ơn!

+0

Bạn đang thử nghiệm loại điện thoại hoặc trình giả lập nào? Đăng mã bộ điều hợp của bạn. –

+1

Bạn có thiết lập nền cửa sổ thành null không? –

+0

Bạn không chắc chắn, làm cách nào để thực hiện điều đó? Cảm ơn. –

Trả lời

0

Tôi cũng gặp vấn đề này và thông qua thử và lỗi, cuối cùng đã tìm được giải pháp. Hy vọng rằng nó cũng sẽ làm việc cho bạn. Điều này dường như là một lỗi trong Marshmallow liên quan đến thanh cuộn trong chế độ xem danh sách. Tôi đã tập tài sản sau đây trong chủ đề ứng dụng của tôi, và loại bỏ các tài sản này khắc phục được di chuyển mờ:

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

Sử dụng true thay vì false cũng làm việc, nhưng là không cần thiết vì nó là mặc định. Tôi cũng phát hiện ra (thông qua dấu vết và lỗi) rằng việc sử dụng android:fastScrollEnabled="true" gây ra sự nhòe giống nhau, nhưng dựa trên kiểu dáng thanh cuộn của bạn, bạn dường như không sử dụng nó.

Tóm lại, không sử dụng android:fadeScrollbars. Nếu điều đó không khắc phục được sự cố của bạn, hãy thử chơi với bất kỳ kiểu dáng liên quan đến scrollbar nào khác mà bạn có thể đang sử dụng trên ListView của mình, lưu ý những kiểu này có thể là một phần của chế độ xem trực tiếp hoặc một phần của chủ đề hoạt động hoặc ứng dụng.

1

Lời nói đầu: Tôi đã đăng câu trả lời riêng trước câu trả lời này, nhưng giải pháp đó chỉ hoạt động trên MotoX của tôi. Sau này tôi phát hiện ra nó không hoạt động cho Galaxy Tab A. Câu trả lời ở đây có vẻ phổ biến hơn:

Tôi có thể sửa lỗi mờ của mình bằng cách xác định kiểu ListView riêng cho ứng dụng của tôi và chỉ định một dải phân cách danh sách khác. Vì vậy, đối với chủ đề ứng dụng của tôi, tôi thiết lập này:

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

đâu ListViewStyleNoBlur được định nghĩa là:

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

tôi đã chỉ định những trong một thư mục values-v23 nguồn lực để thay đổi không ảnh hưởng đến các thiết bị Marshmallow trước.

Chủ đề ứng dụng của tôi dựa trên số android:style/Theme.Light, đó là lý do khiến cha mẹ của kiểu xem danh sách của tôi là android:style/Widget.ListView.White. SDK ứng dụng tối thiểu của tôi là 8, đó là lý do tại sao tôi sử dụng chủ đề "cũ" như vậy. Tôi cũng nhận thấy rằng nếu tôi sử dụng một chủ đề "mới hơn", chẳng hạn như Holo, thì hiệu ứng nhòe không tồn tại.

Các vấn đề liên quan