【Android Compose原创组件】可拖动滚动条的完美实现

news/2024/11/17 5:17:04/

项目背景

我在使用安卓Compose开发自己的【JK管理器】的过程中,很多地方都需要使用滚动条,在Github上也有实现的比较好,但是大多都是基于View(我要的是Compose啊)。

在研究Android 官方示例项目 nowinandroid 中,它里面有一个 Scrollbar 组件,完成度还是比较高(但是还是传统的滚动条),如果想实现固定长度的滚动条,还需要自己实现或者修改。所以以下代码是我参考 NowInAndroid 项目的 Scrollbar 组件修改增强的一个滚动条组件(大部分内容已经魔改)。

注意:只适合 Lazy 相关组件(LazyColumn、LazyGrid、LazyStaggeredGrid)

请添加图片描述

代码结构:

在这里插入图片描述

因为代码量确实比较多,所以放在Github上开源了,有需要的小伙伴可以去下载使用!

Github项目链接


http://www.ppmy.cn/news/1547641.html

相关文章

LLMs 损失函数篇

LLMs 损失函数篇 一、介绍一下 KL 散度 KL(Kullback-Leibler)散度衡量了两个概率分布之间的差异。公式为: D K L ( P ∥ Q ) ∑ P ( x ) log ⁡ P ( x ) Q ( x ) D_{KL}(P \| Q) \sum P(x) \log \frac{P(x)}{Q(x)} DKL​(P∥Q)∑P(x)logQ…

RabbitMQ 通道(Channel)详解:方法使用、消息确认与拒绝

RabbitMQ 是一个强大且灵活的消息代理(message broker),它支持多种消息协议。在 RabbitMQ 的交互模型中,通道(Channel)是一个核心概念。RabbitMQ 中的通道是 TCP 连接内的虚拟连接,允许在单个 T…

鸿蒙元服务 证书过期替换 ERROR - hap-sign-tool: error: Signature verify failed

昨天需要升级一版元服务,打包时发现签名过期了,之前替换了App的签名以为很顺利,结果还是搞了小半天。 证书部分 遇到问题:ERROR - hap-sign-tool: error: Signature verify failed 这里需要将p12也替换成最新的。就是说证书文件…

【MongoDB】MongoDB的集群,部署架构,OptLog,集群优化等详解

文章目录 一、引入复制集的原因二、复制集成员(一)基本成员(二)主节点(Primary)细化成员 三、复制集常见部署架构(一)基础三节点(二)跨数据中心 四、复制集保…

游戏如何应对内存修改

据观察,近年来游戏黑灰产攻击角度多样化趋势显著,主要面临工作室、定制注入挂、模拟点击挂、内存修改挂、破解版等多方面安全问题。 据FairGuard数据统计,在游戏面临的众多安全风险中,「内存修改」攻击占比约为13%,主…

45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…

flask+vue使用jwt验证

为什么要使用jwt验证? jwt(json web token)主要用来解决单点登录(SSO)问题。设想一个场景,你在淘宝登录了你的账号,然后打开天猫(天猫属于淘宝的子网站),那么…

Diff 算法的误判

起源: 设想一下,假如你桌面上的文件都没有文件名,取而代之的是,你使用通过文件的位置顺序即index来区分它们———第一个文件,第二个文件,以此类推。也许这种方式可行,可是一旦你删除了其中的一…