最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android ListView 滾動條的設(shè)置詳解及實例代碼

 更新時間:2017年02月24日 10:03:24   作者:預(yù)見才能遇見  
這篇文章主要介紹了 ListView等滾動條的設(shè)置詳解詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下

Android ListView 滾動條的設(shè)置詳解

1.滾動條的屬性

android:scrollbarAlwaysDrawHorizontalTrack

設(shè)置是否始終顯示水平滾動條。這里用ScrollView、ListView測試均沒有效果。

android:scrollbarAlwaysDrawVerticalTrack

設(shè)置是否始終顯示垂直滾動條。這里用ScrollView、ListView測試均沒有效果。

android:scrollbarDefaultDelayBeforeFade

設(shè)置N毫秒后開始淡化,以毫秒為單位。

android:scrollbarFadeDuration

設(shè)置滾動條淡出效果(從有到慢慢的變淡直至消失)時間,以毫秒為單位。Android2.2中滾動條滾動完之后會消失,再滾動又會出來,在1.5、1.6版本里面會一直顯示著。

android:scrollbarSize

設(shè)置滾動條的寬度。

android:scrollbarStyle

設(shè)置滾動條的風(fēng)格和位置。設(shè)置值:insideOverlay、insideInset、outsideOverlay、outsideInset。這里沒有試出太多效果,以下依次是outsideOverlay與outsideInset效果比較:

android:scrollbarThumbHorizontal

設(shè)置水平滾動條的drawable(如顏色)。

android:scrollbarThumbVertical

設(shè)置垂直滾動條的drawable(如顏色).

android:scrollbarTrackHorizontal

設(shè)置水平滾動條背景(軌跡)的色drawable(如顏色)

android:scrollbarTrackVertical

設(shè)置垂直滾動條背景(軌跡)的drawable注意直接設(shè)置顏色值如”android:color/white”將得出很難看的效果,甚至都不理解這個屬性了,這里可以參見ApiDemos里res/drawable/ scrollbar_vertical_thumb.xml和scrollbar_vertical_track.xml,設(shè)置代碼為:

android:scrollbarTrackVertical ="@drawable/scrollbar_vertical_track"

android:scrollbars

設(shè)置滾動條顯示。none(隱藏),horizontal(水平),vertical(垂直)。見下列代碼演示使用該屬性讓EditText內(nèi)有滾動條。但是其他容器如LinearLayout設(shè)置了但是沒有效果

android:fastScrollEnabled

設(shè)置是否以滑塊的形式顯示(但是有時候會發(fā)現(xiàn)設(shè)置屬性無效,滾動ListView并未出現(xiàn)滑塊。原因是該屬性生效有最小記錄限制。當(dāng)ListView記錄能夠在4屏以內(nèi)顯示(也就是說滾動4頁)就不會出現(xiàn)滑塊??赡苁莂pi設(shè)計者認(rèn)為這么少的記錄不需要快速滾動。)

2.問題注意

注意:可能是適配的原因,可能你設(shè)置了scrollbarSize看不多效果,但是如果你配置scrollbarThumbVertical使用就可以看到

<style name="global_listview_style"> 
  <item name="android:background">@color/white</item> 
  <item name="android:cacheColorHint">#00000000</item> 
  <item name="android:divider">@color/white</item> 
  <item name="android:dividerHeight">10dip</item> 
  <item name="android:fadingEdge">none</item> 
  <item name="android:scrollbarSize">@dimen/DIMEN_4PX_DP</item> 
  <item name="android:scrollbarThumbVertical">@color/red_common</item>     
  <item name="android:fastScrollEnabled">true</item> 
  <item name="android:listSelector">#00000000</item> 
</style> 

3.如何修改滑塊的樣式

 依據(jù)是Android源代碼,見FastScroller的常量聲明:

// Minimum number of pages to justify showing a fast scroll thumb 
     private static int MIN_PAGES = 4; 
 
     以及: 
 
    // Are there enough pages to require fast scroll? Recompute only if total count changes 
    if (mItemCount != totalItemCount && visibleItemCount > 0) { 
       mItemCount = totalItemCount; 
       mLongList = mItemCount / visibleItemCount >= MIN_PAGES; 
    } 

通篇查看了ListView及其超累AbsListView,都未找到自定義圖片的設(shè)置接口??磥硎菦]打算讓開發(fā)者更改了。但是用戶要求我們自定義這個圖片。那只能用非常手段了。

經(jīng)過分析發(fā)現(xiàn),該圖片是ListView超類AbsListView的一個成員mFastScroller對象的成員mThumbDrawable。這里mThumbDrawable是Drawable類型的。mFastScroller是FastScroller類型,這個類型比較麻煩,類的聲明沒有modifier,也就是default(package),只能供包內(nèi)的類調(diào)用。

因此反射代碼寫的稍微麻煩一些:

try { 
  Field f = AbsListView.class.getDeclaredField("mFastScroller"); 
  f.setAccessible(true); 
  Object o=f.get(listView); 
  f=f.getType().getDeclaredField("mThumbDrawable"); 
  f.setAccessible(true); 
  Drawable drawable=(Drawable) f.get(o); 
  drawable=getResources().getDrawable(R.drawable.icon); 
  f.set(o,drawable); 
  Toast.makeText(this, f.getType().getName(), 1000).show(); 
} catch (Exception e) { 
   throw new RuntimeException(e); 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

嘉兴市| 杭州市| 蓝山县| 板桥市| 柘城县| 昭苏县| 台安县| 马边| 庆元县| 宁波市| 鹿泉市| 武冈市| 武乡县| 鸡东县| 旌德县| 务川| 乐至县| 禹城市| 衡水市| 陈巴尔虎旗| 云龙县| 常德市| 长岛县| 砀山县| 太谷县| 年辖:市辖区| 清苑县| 岳普湖县| 武安市| 兰坪| 福安市| 大安市| 封开县| 慈溪市| 宜昌市| 西乌珠穆沁旗| 林芝县| 长子县| 封开县| 新龙县| 绍兴县|