码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-07-17 02:02:33      阅读:130      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!