2011-08-14 39 views
5

Tôi có một chế độ xem danh sách các quốc gia theo thứ tự không phải chữ cái và bắt đầu sử dụng fastscroll. Tôi muốn hiển thị cờ quốc gia khi cuộn bằng fastscroll nhưng có vẻ như các API có lớp FastScroll là riêng tư nên tôi không thể ghi đè nó.Cách hiển thị ngón tay cái tùy chỉnh khi sử dụng fastScrollEnabled

Có ai khác đã triển khai chế độ xem fastscroll tùy chỉnh không?

Tài liệu tham khảo: http://developer.android.com/reference/android/widget/AbsListView.html#attr_android:fastScrollEnabled

Trả lời

10

Trong định nghĩa XML ListView của bạn, thêm

android:fastScrollEnabled="true" 

hoặc trong mã

listView.setFastScrollEnabled(true); 

Tạo tập tin fastscroll_thumb.xml trong res/thư mục drawable như sau:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/fastscroll_pressed" /> 
    <item android:drawable="@drawable/fastscroll" /> 
</selector> 

Trong AndroidManifest.xml, thiết lập một chủ đề tùy chỉnh cho ứng dụng của bạn:

<application 
    android:theme="@style/ApplicationTheme" 
    ...> 

Tạo một thư mục các giá trị trong thư mục res. Tạo themes.xml file trong res/values ​​như sau:

<resources> 
    <style name="ApplicationTheme"> 
     <item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb</item> 
    </style> 
</resources> 

Cuối cùng chắc chắn rằng fastscroll.png và fastscroll_pressed.png tồn tại trong thư mục drawable của bạn

(không bắt buộc) Bạn cũng có thể thiết lập nhanh chóng di chuyển luôn có thể nhìn thấy trong khi bạn đang gỡ lỗi nếu bạn thích

listView.setFastScrollAlwaysVisible(true); 

hoặc trong XML

android:fastScrollAlwaysVisible="true" 
+1

coi chừng 'listView.setFastScrollAlwaysVisible' vì nó chỉ đến từ cấp API 11 –

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