首页 > 移动平台 > 详细

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

时间:2015-07-17 01:59:39      阅读:147      评论:0      收藏:0      [点我收藏+]

使用布局文件需要将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代码则需要调用AbsListView.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组件加上快速滑块以及修改快速滑块图像

原文:http://blog.csdn.net/ouyang_peng/article/details/46919723

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!