Jetpack Compose - Slider

  • 0、介绍
  • 1、属性一览
  • 2、使用示例
  • 3、版本更新
  • 4、未解决问题

Compose系列文章,请点原文阅读。原文,是时候学习Compose了!

0、介绍

拖动条,默认包含了一个滑块和一个滑动轨道。其允许用户在一个数值范围内进行选择。

1、属性一览

【目前基于beta01版本】请看该函数:

@Composable fun Slider(value: Float, onValueChange: (Float) -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, valueRange: ClosedFloatingPointRange<Float> = 0f..1f, steps: Int = 0, onValueChangeFinished: () -> Unit = null, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, colors: SliderColors = SliderDefaults.colors()
): Unit

属性参数含义:

参数 含义
modifier: Modifier = Modifier 应用于布局的修饰符
value: Float 滑块的当前值,如果设置的值超过滑块可选值范围,则会强制为可选范围
onValueChange: (Float) -> Unit 滑动滑块时候的回调当前的值
valueRange: ClosedFloatingPointRange = 0f…1f 滑块可选值的范围,默认0-1f
steps: Int = 0 该值代表将拖动条均分为几等份。如果为0,那么是连续的值。如果是大于0,那么可选值范围会是指定的离散值(请见下文示例相关)
onValueChangeFinished: () -> Unit = null 滑块值更改结束时候的回调。注意该回调不是用来更新滑块的进度的,而是用户通过拖动或者点击滑块完成选择新的数值后才有的回调
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() } 自定义滑块的属性相关,可以参见Button自定义的相关内容
colors: SliderColors = SliderDefaults.colors() 拖动条各种状态滑块和轨道的颜色设置(具体请看下文属性)
thumbColor: Color = MaterialTheme.colors.primary 拖动条的滑块的颜色
inactiveTrackColor: Color = activeTrackColor.copy(alpha = InactiveTrackColorAlpha) 拖动条默认轨道的背景色
activeTrackColor: Color = MaterialTheme.colors.primary 拖动条拖动滑块后激活部分轨道的颜色(请见下文示例)
inactiveTickColor: Color = activeTrackColor.copy(alpha = TickColorAlpha) 设置了steps属性后的离散值默认颜色(请见下文示例)
activeTickColor: Color = MaterialTheme.colors.onPrimary.copy(alpha = TickColorAlpha) 设置了steps属性后的激活的离散值的颜色(请见下文示例)

2、使用示例

我们先来看下一个极简的拖动条,代码如下:

@Composable
fun SliderDemo() {val progress = remember { mutableStateOf(0f) }Slider(value = progress.value,onValueChange = {progress.value = it},)
}

实现效果如下所示,所有的颜色是基于默认的主题色:


现在我们先设置下如下三个属性,分别是红、灰、蓝:

thumbColor = myRed,
inactiveTrackColor = myGray,
activeTrackColor = myBlue,

请自行体会,对照上述属性:


OK,现在继续设置下steps属性,还有另外两个可以自定义的颜色值:

steps = 10,
inactiveTickColor = myYellow,
activeTickColor = Color.White

效果如下所示,请自行对照属性理解:

3、版本更新

  • beta01
    在该版本中对于各种颜色的定义统一放在了SliderDefaults.colors中,请自行修改。

4、未解决问题

以上只是实现了基本的拖动条功能,但是实际使用中UI设计可能完全不同,我们可以根据interactionState、自定义视图等的功能去实现,具体使用我们在自定义视图篇章中统一去处理。

Jetpack Compose - Slider相关推荐

  1. Jetpack Compose中的Accompanist

    accompanist是Jetpack Compose官方提供的一个辅助工具库,以提供那些在Jetpack Compose sdk中目前还没有的功能API. 权限 依赖配置: repositories ...

  2. Jetpack Compose学习笔记

    在前不久的 Android Dev Summit '19 上,Jetpack Compose 终于发布了一个可直接获得的预览版.现在的版本还是 0.1.0-dev02,处于非常早期的版本,官方也再三强 ...

  3. 随输入动态改变ui_深入详解 Jetpack Compose | 优化 UI 构建

    人们对于 UI 开发的预期已经不同往昔.现如今,为了满足用户的需求,我们构建的应用必须包含完善的用户界面,其中必然包括动画 (animation) 和动效 (motion),这些诉求在 UI 工具包创 ...

  4. 移动开发 Jetpack Compose 组件布局

    Jetpack Compose 是用于构建原生 Android 界面的新工具包.它可简化并加快 Android 上的界面开发,使用更少的代码.强大的工具和直观的 Kotlin API,快速让应用生动而 ...

  5. 在 Jetpack Compose 中安全地使用数据流

    /   今日科技快讯   / 11月17日下午,暴雪中国官方微博发布公告称,各位暴雪游戏的国服玩家,我们很遗憾地通知大家,随着我们与网之易公司现有授权协议的到期,自2023年1月24日0点起,所有&l ...

  6. Jetpack Compose 自定义绘制——高仿Keep周运动数据页面

    废话之前先上图吧,如果不是有人告诉,你可以一眼看出哪个是真哪个是假吗? 仿制整个页面(仅仅页面)大概花了我两个小时,不过仅仅是静态的.不可点击的.图有形似而无功能. 自定义绘制 Jetpack Com ...

  7. 使用Jetpack Compose竟能做出如此漂亮的倒计时APP

    Compose开发者挑战赛二周目 迎合Jetpack Compose beta版的发布,Google官方发起了Compose开发者挑战赛活动,目前已经入二周目 android-dev-challeng ...

  8. Jetpack Compose - Switch

    Jetpack Compose - Switch 1.属性一览 2.使用示例 3.版本更新 4.未解决问题 Compose系列文章,请点原文阅读.原文:是时候学习Compose了! 1.属性一览 [目 ...

  9. Jetpack Compose Animations 超简单教程

    Node:本文基于Jetpack Compose 1.0.0-beta01 Animation是由state驱动的 Compose的核心思想状态驱动UI刷新,这一思想同样体现在动画上. Compose ...

最新文章

  1. 【深度学习】CornerNet: 将目标检测问题视作关键点检测与配对
  2. Linux中添加、修改、删除用户和用户组
  3. 做产品,大公司克制,小公司放纵
  4. Python编程一定要注意的那些“坑”(八):赋值运算符=
  5. android滚动条布局平分,让你的布局滚动起来—ScrollView
  6. matlab2c使用c++实现matlab函数系列教程-sign函数
  7. linux和window是服务器时间同步
  8. Hibernate框架(一)——总体介绍
  9. niva mysql_Nivacat for mysql是一种第三方提供的()_学小易找答案
  10. 如何用一个例子彻底解释白盒测试中语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖?
  11. admin后台管理系统
  12. 学习笔记---ih5_九宫格_拼图
  13. h5互动小游戏定制开发流程
  14. 设计低通巴特沃斯数字滤波器(matlab)去除ECG基线漂移实例
  15. 什么是小微企业?小微企业的定义是什么?为什么要支持小微企业?
  16. Python爬虫之知乎采集工具
  17. 数学建模|预测方法:灰色预测模型
  18. 如何去掉“Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8” 提示,删环境变量都不好使
  19. 解决Win10局域网共享问题:请检查名称的拼写 否则 网络...
  20. Data Structures and Algorithms (English) - 6-10 Sort Three Distinct Keys(30 分)

热门文章

  1. 小米AI实验室六篇论文获 ICASSP 2022收录,多模态语音唤醒挑战赛夺冠
  2. Python机器学习库
  3. 编译ColmapForSat遇到的问题
  4. 计算机电源整流滤波,开关电源设计:输入整流滤波器及钳位保护电路的设计
  5. SpringBoot集成Elasticsearch搜索引擎(九)
  6. 图片格式怎么转换?JPG、PNG、BMP等格式一键转换,这三个工具收好
  7. Java访问权限之 protected详解
  8. ssize_t是什么类型
  9. idea git 分支代码合并到主干
  10. socket阻塞和非阻塞模式