android listView的开启滑块及最小页数解决办法

来源:互联网 发布:linux入门教程视频 编辑:程序博客网 时间:2024/05/01 18:54

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