好吧,又遇到需求了,需要修改ScrollBar的样式,于是查阅了很多文档,觉得这位大牛总结的不错,顺便看了下他的主页,哇哦,大神啊~!!!附上大神文章的链接:http://likfe.com/archives/
知识点
在ListView/ScrollView/RecyclerView中添加属性:
android:scrollbars=”vertical”
android:scrollbarTrackVertical=”@drawable/xxx_vertical_track”
android:scrollbarThumbVertical=”@drawable/xxx_vertical_thumb”
情况B :水平滚动条
android:scrollbars=”horizontal”
android:scrollbarTrackHorizontal=”@drawable/xxx_horizontal_track”
android:scrollbarThumbHorizontal=”@drawable/xxx_horizontal_thum“
其他通用的属性
定义滚动条的样式和位置
android:scrollbarStyle=”outsideInset”
2.定义滚动条的大小,垂直时指宽度,水平时指高度
android:scrollbarSilbarSize=”4dp”
属性 | 效果 |
---|---|
scrollbarThumbVertical[Horizontal] | 短条 |
scrollbarTrackVertical[Horizontal] | 长条,即背景 |
需要注意
其中,scrollbaTrackxxx、scrollbarThumbxxx可以使用:
◦Shape自定义 Drawable
◦图片
◦.9.png
◦@color/xxx的方式使用颜色值
不可以直接使用#xxxxxx颜色值
android:scrollbarStyle
android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlay、insideInset、outsideOverlay、outsideInset四种。
其中inside和outside分别表示是否在 view 的 padding 区域内,overlay和inset表示覆盖在 view 上或是插在 view 后面,所以四种值分别表示:
属性值 | 效果 |
---|---|
insideOverlay | 默认值,表示在padding区域内并且覆盖在view上 |
insideInset | 表示在padding区域内并且插入在view后面 |
outsideInset | 表示在padding区域外并且插入在view后面 |
outsideOverlay | 表示在padding区域外并且覆盖在view上 |
Demo
说明:
scrollbarTrackVertical设为透明或者直接不设置即可android:scrollbarTrackVertical=”@color/transparent”
再次强调:scrollbarThumbVertical、scrollbarTrackVertical 不可以直接设置为颜色值,但可以使用@color的
layout:
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"
android:scrollbarSize="3dp"
android:scrollbars="vertical"
Demo 2
layout:
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@color/red_square"
android:scrollbarSize="3dp"
android:scrollbars="vertical”
效果图
默认效果:
demo2效果:
demo1效果: