因项目需要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 进行交流------------------------