ListView支持快速滑块,前提是在布局文件中设置,android:fastScrollEnabled="true",这个值缺省的应该也是true,或者在代码中设置 listView.setFastScrollEnabled(true);
void setListFastScrollPage() {//设置快速滑块的出现不超过4屏就出现
try {Field f = AbsListView.class.getDeclaredField("mFastScroller");
f.setAccessible(true);
Object o = f.get(list);
f = f.getType().getDeclaredField("MIN_PAGES");
f.setAccessible(true);
f.set(o, 0);
} catch (Exception e) {
Log.d("Error", "Could not get fast scroller");
}
}
void setListFastScroll() {//自定义快速滑块的图片
try {
Field f = AbsListView.class.getDeclaredField("mFastScroller");
f.setAccessible(true);
Object o = f.get(list);
f = f.getType().getDeclaredField("mThumbDrawable");
f.setAccessible(true);
Drawable drawable = (Drawable) f.get(o);
drawable = getResources().getDrawable(R.drawable.icon);
f.set(o, drawable);
} catch (Exception e) {
}
}
写完手工,有需要的小伙伴们直接用。