1. 程式人生 > >RecyclerView 滾動條 長寬設定

RecyclerView 滾動條 長寬設定

RecyclerView Scrollbar

記錄滾動條相關屬性,本文主要內容:

1,scrollbar 樣式設定

2,scrollbar 背景以及滾動條 長寬設定

屬性 效果
android:scrollbars 設定滾動條水平 horizontal / 或垂直 vertical
scrollbarThumbVertical[Horizontal] 設定滑塊(短條)
scrollbarTrackVertical[Horizontal] 設定背景(長條)

               android:scrollbarStyle

                滾動條的樣式和位置

insideOverlay (預設值,表示在padding區域內並且覆蓋在view上)
insideInset (表示在padding區域內並且插入在view後面)
outsideOverlay(表示在padding區域外並且覆蓋在view上)
outsideInset(表示在padding區域外並且插入在view後面)
scrollbarSize 設定滾動條的大小,垂直時指寬度,水平時指高度
overScrollMode (never)設定滑動到邊緣時無效果模式
scrollbars (none)設定滾動條不顯示

 

 

 

 

 

 

 

 

 

 

 

一,樣式設定:

在styles.xml 檔案中新增一個 style標籤

    <style name="ZoomItemRecyclerView_style">
        <item name="android:scrollbarThumbVertical">@color/blue_color_008ee3</item>
        <item name="android:scrollbarTrackVertical">@color/white_5</item>
        <item name="android:layout_marginRight">@dimen/dpi_10px</item>
        <item name="android:layout_marginLeft">@dimen/dpi_10px</item>
        <item name="android:scrollbarSize">@dimen/dpi_5px</item>
        <item name="android:overScrollMode">never</item>
        <item name="android:scrollbars">vertical</item>
        <item name="android:scrollbarStyle">insideOverlay</item>
    </style>

注意:滾動條的 背景和滑塊設定

  • Shape自定義 Drawable
  • 圖片
  • .9.png 
  • @color/xxx 的方式使用顏色值

此處設定一個 垂直的滾動條,然後在xml中引用該樣式

        <cn.sh.changxing.onlineradio.aa_activity.view.ZoomItemRecyclerView
            android:id="@+id/fragment_recommend_list"
            style="@style/ZoomItemRecyclerView_style"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

效果圖如下

   

最簡單的一個效果出來了,但是這裡可以看到,有兩個現象

1,滾動條起始位置(這裡就是指背景高度)是撐滿整個列表的

2,當列表資料越多的時候,滑塊長度越小

如果我滾動條長度要求只佔80%,或指定高度,滑塊長度維持不變,那這明顯不行

二,背景以及滾動條 長寬設定

稍微修改下,背景跟滑塊 使用兩張自定義圖片

        <item name="android:scrollbarThumbVertical">@drawable/aa_scrollbar</item>
        <item name="android:scrollbarTrackVertical">@drawable/aa_scrollbar_bg</item>

aa_scrollbar.xml 滑塊圖片

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:height="@dimen/dpi_80px"
        android:bottom="@dimen/dpi_20px"
        android:top="@dimen/dpi_20px">
        <shape>
            <corners android:radius="@dimen/dpi_2px" />
            <solid android:color="?attr/Theme_color" />
        </shape>
    </item>

</layer-list>

android:height    指定高度

android:bottom  距離底部

android:top         距離頂部

corners 圓角

solid 填充顏色

aa_scrollbar_bg.xml 背景圖片

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:bottom="@dimen/dpi_20px"
        android:top="@dimen/dpi_20px">
        <shape>
            <corners android:radius="@dimen/dpi_2px" />
            <solid android:color="@color/scrollbar_bg" />
        </shape>
    </item>
</layer-list>

背景圖片僅少了指定高度

效果如下:

高亮滑塊 長度固定, 滾動條總長度佔整個高度的80%左右,並帶有圓角效果。

記錄一下