Android必知必会-自定义Scrollbar样式

如果移动端访问不佳,请使用–>GitHub版

背景

设计师给的设计图完全依照 IOS 的标准来的,导致很多细节的控件都得自己重写,最近的设计图中有显示滚动条,Android 默认的滚动条样式(带描边)和设计图格格不入,无奈,只好研究下自定义 Scrollbar 样式。这里稍微整理下。

知识点

ListView/ScrollView/RecyclerView中添加属性:

<!-- 情况A :垂直滚动条-->
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_thumb"

<!-- 其他通用的属性 -->
<!-- 1.定义滚动条的样式和位置 -->
android:scrollbarStyle="outsideInset"
<!-- 2.定义滚动条的大小,垂直时指宽度,水平时指高度 -->
android:scrollbarSize="4dp"
属性效果
scrollbarThumbVertical[Horizontal]短条
scrollbarTrackVertical[Horizontal]长条,即背景

scrollbaTrackxxxscrollbarThumbxxx自定义的 xml 文件,放在Drawable中,track是指长条,thumb是指短条,然后再 xml 中定义短条和长条的样式。

需要注意

其中,scrollbaTrackxxxscrollbarThumbxxx可以使用

  • Shape自定义 Drawable
  • 图片
  • .9.png
  • @color/xxx的方式使用颜色值

不可以直接使用#xxxxxx颜色值

android:scrollbarStyle

android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlayinsideInsetoutsideOverlayoutsideInset四种。

其中insideoutside分别表示是否在 view 的 padding 区域内,overlayinset表示覆盖在 view 上或是插在 view 后面,所以四种值分别表示:

属性值效果
insideOverlay默认值,表示在padding区域内并且覆盖在view上
insideInset表示在padding区域内并且插入在view后面
outsideOverlay表示在padding区域外并且覆盖在view上
outsideInset表示在padding区域外并且插入在view后面

Demo

下面是两个Demo:

color:

<color name="red_square">#CCFF6464</color>
<color name="transparent">#00000000</color>

drawable:scrollbar_vertical_thumb

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- 填充 -->
    <solid android:color="#66000000"/>
	<!-- 圆角 -->
    <corners android:radius="1dp" />
</shape>

Demo 1

layout:

android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"
<!-- 
scrollbarTrackVertical设为透明或者直接不设置即可
android:scrollbarTrackVertical="@color/transparent"
再次强调:scrollbarThumbVertical、scrollbarTrackVertical 不可以直接设置为颜色值,但可以使用@color的方式使用颜色值
-->
android:scrollbarSize="3dp"
android:scrollbars="vertical"

Demo 2

layout:

android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@color/red_square"
android:scrollbarSize="3dp"
android:scrollbars="vertical"

效果图

默认样式 :
default

Demo 1 :
demo1

Demo 2:
demo2

总结

在查资料的过程中,发现滚动条也可以使用代码来画,这里不做过多介绍,有兴趣的可以研究一下。

PS:

你可以关注的我GithubCSDN微博

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
el-scrollbar是一个用于自定义滚动条的Vue组件。通过使用el-scrollbar,我们可以自定义滚动条的样式和行为,以适应不同的需求。该组件可以应用于任何需要滚动功能的地方,比如长列表、弹出框等。 要使用el-scrollbar,首先需要在Vue项目中引入element-ui库,并按照文档中的说明进行安装和配置。安装完成后,可以在需要的组件中使用el-scrollbar组件。 在使用el-scrollbar时,我们可以通过设置不同的属性来实现自定义的滚动效果。其中一些常用的属性包括: 1. wrap-class:通过该属性可以设置滚动条容器的样式类名,用于自定义外观。 2. view-class:通过该属性可以设置滚动视图的样式类名,用于自定义滚动条内部内容的样式。 3. noresize:通过设置该属性为true,可以禁止滚动条重新计算大小。这在内容尺寸不会发生变化的情况下可以提高性能。 4. native:通过设置该属性为true,可以使用浏览器原生的滚动条样式。这在需要兼容性或者特定样式要求的情况下可以使用。 5. wrap-style和view-style:通过这两个属性可以设置滚动条容器和滚动视图的内联样式,用于进一步自定义外观和布局。 通过设置这些属性,我们可以自定义el-scrollbar的滚动条样式和行为,以满足我们的具体需求。详细的属性说明和示例代码可以在element-ui的官方文档中找到。<span class="em">1</span> #### 引用[.reference_title] - *1* [Vue的el-scrollbar实现自定义滚动](https://download.csdn.net/download/weixin_38609571/12868545)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值