爲ListView組件加上快速滑塊以及修改快速滑塊圖像

本文轉載自:http://blog.csdn.net/ouyang_peng/article/details/46919723java

做者:歐陽鵬  歡迎轉載,與人分享是進步的源泉!android

轉載請保留原文地址:http://blog.csdn.net/ouyang_pengspa

 

1.容許快速滑動.net

在xml中將android:fastScrollEnabled="true" ,以下代碼所示:code

 

<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)方法。xml

 

2.修改滑塊對象

ListView組件並無提供修改快速滑塊圖像的API,所以不能直接修改快速滑塊圖像。可是能夠經過反射技術修改快速滑塊圖像,代碼以下:blog

//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/article/details/46919723get

相關文章
相關標籤/搜索