2012-02-24 30 views
6

Tôi đã cố gắng hết sức để khắc phục sự cố này khi các mục ListView của tôi được tô sáng. Tôi đã xem xét bất kỳ giải pháp tôi có thể tìm thấy ở đây trên stackoverflow, và đã tìm thấy không có gì làm việc cho tôi.Làm thế nào để ngăn chặn các mục ListView higlighting trong Black

Trước hết, đây là một ListView trong LinearLayout trong một ViewPager trong LinearLayout.

Mỗi mục trong Chế độ xem danh sách đó là một LinearLayout chứa LinearLayout (chứa một TextView) và một Thư viện. Thư viện chứa nhiều LinearLayouts chứa TextView và Imageview trong FrameLayout.

Sự cố này xảy ra, không phải khi nhấp chuột nhưng khi kéo, như khi vuốt ngón tay của bạn qua một câu chuyện (đôi khi trong khi ListView cuộn bằng kéo của bạn) mục bên dưới sẽ được chọn. Ngoài ra, vấn đề cụ thể này chỉ xảy ra trên các thiết bị mà hiệu ứng cuộn quá không gây ra hiện tượng nảy khi di chuyển.

nỗ lực để giải quyết vấn đề này như sau:

  • Đặt Danh sách Selector để màu nền trong XML (Fail)
  • Đặt Danh sách Chọn Alpha # 00000000 trong XML (Fail)
  • các trên nhưng Programatically
  • trên nhưng theo chủ đề
  • Mã đã đưa ra lựa chọn để -1 onListItemClick
  • Loại bỏ t ông nền từ LinearLayout mục danh sách (Hoạt động trên 4.0)
  • Thiết android:cacheColorHint-#00000000 (không có gì?)

Bất kỳ trợ giúp sẽ được đánh giá cao. Tôi chỉ không thể tìm ra lý do tại sao nó làm điều này và tôi thực sự cần nó để dừng lại.

Screenshot of ListView Item being HIghlighted

+0

Khi bạn thêm một mục vào danh sách có thể nhấp vào, nó sẽ vô hiệu hóa danh sáchSelection, tôi đoán bạn có thể lạm dụng hoặc xem thêm mục đó. – Warpzit

Trả lời

8

Đây là một vấn đề thú vị nhất. Giải pháp thậm chí còn thú vị hơn.

Vì một lý do nào đó, những gì tôi không thử, và những gì không ai nghĩ đến, là xóa android:background từ LinearLayout cho các mục ListView.

Khi xóa android:background, bố cục tiếp tục hiển thị chính xác và màu đen không còn xuất hiện nữa.

Nếu bạn gặp rắc rối tương tự như sau rằng điều này không giải quyết, bạn có thể muốn kiểm tra Blog Android: Why is my list black?

EDIT: này làm việc tốt cho ICS, nhưng gợi ra một vấn đề lớn hơn nhiều trong 2.1 . Để giải quyết hoàn toàn thử thách, tôi đã phải chỉ định android:cacheColorHint="#000000" cho ListView (và LinearLayout để có biện pháp tốt) trong kiểu nội tuyến cũng như định nghĩa kiểu tôi đã áp dụng cho ListView.

+4

trong thực tế, gợi ý màu bộ nhớ cache phải được đặt thành '# 00000000', không phải là' # 000000' –

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