因項目需要listView顯示滑塊,在網上找了很多資料,大多數是說怎麼改圖片和如何開啓滑塊,但就是沒有找到自己定義最小頁數,
因爲android自身是當listView數據大於屏摹顯示內容的4倍時纔會出現滑塊,根據網上更改圖片的原理通過反射機制來自定義最小頁面.
這裏是設置的1頁,只要內容大於1頁就會出現滑塊.
開啓滑塊方法
xml文件中:
android:fastScrollEnabled="true"
android:focusable="true"
java代碼中:
myListView.setFastScrollEnabled(true);
修改滑塊圖片及最小頁面數方法:
public void updateListViewMinPage(ListView listView){
try {
Field field = AbsListView.class.getDeclaredField("mFastScroller");field .setAccessible(true);
Object object=field .get(listView);
field =field .getType().getDeclaredField("mThumbDrawable");
field .setAccessible(true);
Drawable drawable=(Drawable)field .get(object);
drawable=getResources().getDrawable(R.drawable.logo);
field.set(object,drawable);
field .setAccessible(true);
Field minPages =object.getClass().getDeclaredField("MIN_PAGES");
minPages.setAccessible(true);
minPages.set(object,1);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
--------------------------可以加我微信號:googlecao 進行交流------------------------