RecyclerView 、ScrollView滚动条长宽设置

简介: RecyclerView 、ScrollView滚动条长宽设置

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%左右,并带有圆角效果。

相关文章
|
存储 缓存 前端开发
关于Android SurfaceView截屏总结
关于Android SurfaceView截屏总结
2463 0
|
XML Android开发 数据格式
Android利用selector(选择器)实现图片动态点击效果
本文介绍了Android中ImageView的`src`与`background`属性的区别及应用,重点讲解如何通过设置背景选择器实现图片点击动态效果。`src`用于显示原图大小,不拉伸;`background`可随组件尺寸拉伸。通过创建`selector_setting.xml`,结合`setting_press.xml`和`setting_normal.xml`定义按下和正常状态的背景样式,提升用户体验。示例代码展示了具体实现步骤,包括XML配置和形状定义。
599 3
Android利用selector(选择器)实现图片动态点击效果
|
10月前
|
XML 编解码 Android开发
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
814 0
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
|
XML 搜索推荐 Android开发
Android改变进度条控件progressbar的样式(根据源码修改)
本文介绍了如何基于Android源码自定义ProgressBar样式。首先分析了系统源码中ProgressBar样式的定义,发现其依赖一张旋转图片实现动画效果。接着分两步指导开发者实现自定义:1) 模仿源码创建一个旋转动画XML文件(放置在drawable文件夹),修改图片为自定义样式;2) 在UI控件中通过`indeterminateDrawable`属性应用该动画。最终实现简单且个性化的ProgressBar效果,附带效果图展示。
716 2
|
Android开发 开发者 索引
Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能
本文介绍如何使用 `DiffUtil` 实现 `RecyclerView` 数据集的高效更新,避免不必要的全局刷新,尤其适用于处理大量数据场景。通过定义 `DiffUtil.Callback`、计算差异并应用到适配器,可以显著提升性能。同时,文章还列举了常见错误及原因,帮助开发者避免陷阱。
1491 9
|
Android开发
Android中如何快速的实现RecycleView的拖动重排序功能
使用`ItemTouchHelper`和自定义`Callback`,在`RecyclerView`中实现拖动排序功能。定义`ItemTouchHelperAdapter`接口,`Adapter`实现它以处理`onItemMove`方法。`SimpleItemTouchHelperCallback`设置拖动标志,如`LEFT`或`RIGHT`(水平拖动),并绑定到`RecyclerView`以启用拖动。完成这些步骤后,即可实现拖放排序。关注公众号“AntDream”获取更多内容。
594 3
|
存储 安全 API
Android经典实战之存储方案对比:SharedPreferences vs MMKV vs DataStore
本文介绍了 Android 开发中常用的键值对存储方案,包括 SharedPreferences、MMKV 和 DataStore,并对比了它们在性能、并发处理、易用性和稳定性上的特点。通过实际代码示例,帮助开发者根据项目需求选择最适合的存储方案,提升应用性能和用户体验。
1363 1
|
Android开发
Android中如何动态的调整Dialog的背景深暗
在Android开发中,Dialog和DialogFragment可通过设置`Window`的`backgroundDimAmount`来控制背景变暗,突出对话框。在DialogFragment的`onCreateDialog`或`onViewCreated`中,获取`Dialog`的`Window`,设置`LayoutParams.dimAmount`(例如0.5f)并添加`FLAG_DIM_BEHIND`标志。要动态调整,可保存`LayoutParams`并在需要时更新。对于Dialog,创建时直接设置同样属性。还可以通过定义主题样式设置背景模糊程度。
751 7
|
XML Android开发 UED
|
搜索推荐 Android开发 开发者
Android应用开发:实现自定义ViewPager2的完全指南
【5月更文挑战第23天】 在移动应用开发的领域中,为用户提供流畅且直观的界面体验至关重要。Android平台上的ViewPager2组件提供了一个强大的方式来实现可滑动的页面,但有时候默认的行为和样式可能无法满足特定的设计要求。本文将深入探讨如何通过创建一个自定义的ViewPager2来扩展其功能,包括实现新的转换效果、修改指示器样式以及增加触摸事件响应等。我们将提供详尽的步骤和代码示例,帮助开发者掌握创建高度定制的ViewPager2所需的关键概念和技术。