使用布局文件需要将android:fastScrollEnabled="true" ,如下代码所示:

    <ListView
android:id="@+id/listView" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:fastScrollEnabled="true"
android:focusable="true"
/>

使用Java代码则需要调用.setFastScrollEnabled(boolean
enabled)方法。如下代码所示:

     ListView listView=new ListView(getApplicationContext());
listView.setFastScrollEnabled(true);

ListView组件并没有提供修改快速滑块图像的API,因此不能直接修改快速滑块图像。但是可以通过反射技术修改快速滑块图像,代码如下:

                    //FastScroller.mThumbDrawable变量保存了快速滑块图像
//首先要通过AbsListView.mFastScroller获取FastScroller对象
Field field = AbsListView.class.getDeclaredField("mFastScroller");
field.setAccessible(true);
Object object=field.get(listView);
//获取FastScroller.mThumbDrawable变量的对象
field=field.getType().getDeclaredField("mThumbDrawable");
field.setAccessible(true);
//获取FastScroller.mThumbDrawable变量的值
Drawable drawable=(Drawable) field.get(object);
//装载新的快速滑块对象
drawable=getResources().getDrawable(R.drawable.img);
//重新设置快速滑块对象
field.set(object,drawable);
//设置最小页数
field .setAccessible(true);
Field minPages =object.getClass().getDeclaredField("MIN_PAGES");
minPages.setAccessible(true);
minPages.set(object,1);


                            ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

====================================================================================

我的Android进阶之旅------>如何为ListView组件加上快速滑块以及修改快速滑块图像-LMLPHP

 

05-11 02:08