Jetpack:026-Jetpack中的Slider


我们在上一章回中介绍了Jetpack多点触控相关的内容,本章回中 主要介绍Slider。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的Slider就是一个类似进度条的滑动条,与进度条不同的是它不能自动显示进度,需要用户手动拖动滑块才可以显示进度,它常用的场景是调节音量和亮度,这个场景估计大家在手机上都使用过。在Jetpack compose中使用Slider可组合函数表示Slider,本章回中将详细介绍它的使用方法。

2. 使用方法

可组合函数Slider提供了相关参数来控制自己,下面是常用的参数:

  • enabled参数:主用来控制是否可以拖动滑动块;
  • value参数:主要用来控制滑动时的进度;
  • onValueChange参数:滑动值发生变化时调用的函数;
  • colors参数:主要用来控制滑动块,滑动轨道的颜色;
  • valueRange参数:主要用来控制滑动值的范围,默认值为0-1;
  • steps参数:主要用来控制滑动时的步进值,我觉得理解为滑动轨道划分的份数比较合适;

上面介绍的这些参数中我重点对最后一个参数做说明,因为它的用法不好理解,它实际是把valueRange范围内的数据分成了steps+1份,真正的步进值需要用valueRange范围内的值除setps+1才可以。

除此之外,value参数也需要说明:最好给它传入一个状态值,这样才可以实时控制它的进度。我们将会在后面的小节中通过示例代码介绍这些参数的使用方法。

3. 代码与效果

3.1 示例代码

var sliderPosition2 by remember {mutableStateOf(0f)}

Slider(
    modifier = Modifier.padding(horizontal = 16.dp),
    value = sliderPosition2,
//            enabled = false,
    //滑动值发生变化时调用
    onValueChange = { sliderPosition2 = it },

    colors = SliderDefaults.colors(
        //滑动条头部的颜色
        thumbColor = Color.Red,
        //滑动轨道的颜色
        activeTrackColor = Color.Green,
        inactiveTrackColor = Color.Blue,
        //滑动轨道上刻度尺的颜色
        activeTickColor = Color.White,
        inactiveTickColor = Color.Red,
    ),
    //滑动值的范围,默认0-1,值为浮点类型
    valueRange = 1f..10f,
    //滑动的步进值,注意需要用range除setps+1才是真正的步进值,比如这里的步进值是10/5=2
    //它会在进度显示4个分段标记
    steps = 4,
)
Text(text = sliderPosition2.toString())

我们在上面的示例代码中添加了详细的注释,这样有助于大家理解代码,代码中使用了状态值sliderPosition2来控制Slider的进度,代码中还添加了一个Text,它主要用来显示进度值。

结合代码来看一下Slider的步进值:取值范围是1-10,setps值为4,真正的步进值10/5=2。这个步进值是不说滑动一次前进2个进度,而是把整个滑动轨道分成了5部分,它每次步进的内容是按照实际进度值进行的,我们在这里不做详细介绍,遇到具体的需求了再做分析。

3.2 运行效果

编译并且运行上面的示例代码,可以得到以下的运行效果图,建议大家自己动手去实践一下,这样才能体会到滑动时的值的变化。

在这里插入图片描述

此外,compose的中Slider与以前View中的Slide在效果上有一个不同点,它会在轨道上显示步进的标记点,类似刻度尺上的刻度,为了方便大家观察,我把它设置成了红色。大家可以仔细看一下。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • 在compose中使用Slider可组合函数实现滑动条;
  • Slider通过相关的参数控制滑动的进度和外观颜色;
  • Slider需要配合一个状态值使用,这样可以实际控制进度值;
  • Slider在外观上会显示步进值,这是与其它Slider不同的地方;

看官们,与Jetpack中Slider相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值