Jetpack:026-Jetpack中的Slider

news2024/11/26 11:54:40

文章目录

  • 1. 概念介绍
  • 2. 使用方法
  • 3. 代码与效果
    • 3.1 示例代码
    • 3.2 运行效果
  • 4. 内容总结

我们在上一章回中介绍了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相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1162441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB R2023a下载链接及软件安装教程

先解释下什么是A什么是B,省的有些小菜们总问。 a是上半年,b是下半年版本,但是有些小弱们总是觉得只要是b一定功能多,这不一定的,同年版本b比a可能稍微全点,不同年的,比如21b,22a&am…

如何使用Javascript实现缓动特效

什么是缓动特效 虽然缓动特效这个词你可能没有听说过,但是绝大部分人都使用过。最典型的场景是在实现动画的过程中,无论是早期的jQuery还是CSS3里的transition,都允许你添加一个缓动特效参数,例如 linear, ease-in, ease-out等等…

云安全—etcd攻击面

0x00 前言 本篇还是一样,先来说一说etcd是什么,干啥的,然后再来看看etcd的攻击面到底有哪些,做一个抛砖引玉的作用,如有不妥之处还请斧正 0x01 etcd 依旧还是按照问问题的方式来进行阐述,因为学到的东西…

【一文搞定--web 自动化之文件上传】

在做web自动化时,我们经常会碰到一些场景需要进行文件上传,而文件上传打开的窗口属于windows控件,通过Selenium是操作不了的,此篇文章给大家介绍几种实现方法。 前言 方法一:sendKeys 前提条件:文件上传元…

51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)

51单片机电子钟闹钟温度液晶显示设计( proteus仿真程序原理图设计报告讲解视频) 1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接(可点击): 🌟51单片…

2103. 环和杆

2103. 环和杆 难度: 简单 来源: 每日一题 2023.11.02 总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个…

汇编-算术运算符

下面给出了一些有效表达式和它们的值:

跆拳道馆展示服务预约小程序的效果如何

除了书本上的知识,很多人或孩子会选择学习一些技能,如游泳、钢琴、棋艺花艺等,跆拳道也拥有较高的客户群体,但由于需求属性较强,因此在实际发展中,商家宣传推广、获取线索、服务赋能方面不足。 如今互联网…

在微信小程序怎么领取优惠券

随着科技的发展,微信小程序已经成为我们日常生活中不可或缺的一部分。它为我们提供了各种各样的服务,使我们的生活变得更加便捷。而在这些服务中,领取优惠券成为了大家特别喜欢的功能之一。本文将详细介绍如何在微信小程序中领取优惠券&#…

文件夹怎么设置密码?电脑怎么设置文件夹密码?

在使用电脑的过程中,我们经常使用文件夹来储存管理文件。而为了保护文件夹的数据安全,我们可以为文件夹设置密码。那么,电脑怎么设置文件夹密码呢?下面我们就一起来了解一下。 文件夹设置密码的要求 文件夹设置密码很简单&#…

ELK + kafka 日志方案

概述 本文介绍使用ELK(elasticsearch、logstash、kibana)  kafka来搭建一个日志系统。主要演示使用spring aop进行日志收集,然后通过kafka将日志发送给logstash,logstash再将日志写入elasticsearch,这样elasticsearc…

【C++】关于构造函数后面冒号“:“的故事------初始化列表(超详细解析,小白一看就懂)

目录 一、前言 二、 初始化的概念区分 三、初始化列表 (重点) 💦初始化列表的概念理解 💦初始化列表的注意事项 四、共勉 一、前言 在之前的博客学习中,我们已经学习了【C】的六大默认成员函数 ,想必大…

MySQL数据库入门到精通——运维篇(2)

MySQL数据库入门到精通——运维篇(2) 1. 分库分表1.1 分库分表介绍1.1.1 现在的问题1.1.2 拆分策略1.1.2.1 垂直拆分策略1.1.2.2 水平拆分策略 1.2 Mycat概述1.3 Mycat入门1.4 Mycat配置1.4.1 Schema标签1.4.2 Datanode标签1.4.3 Datahost标签1.4.4 rule…

蓝桥杯每日一题2023.11.2

题目描述 等差素数列 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题我们需要求出最小的公差并且长度为10, 1.确保序列开始为素数 2.确定枚举的个数 注意:序列中数只是d的变化,可以通过此计算将开始数字后9个数字都计算出来,d是…

PostgreSQL逻辑管理结构

1.数据库逻辑结构介绍 2.数据库基本操作 2.1 创建数据库 CREATE DATABASE name [ [ WITH ] [ OWNER [] user_name ] [ TEMPLATE [] template ] [ ENCODING [] encoding ] [ LC_COLLATE [] lc_collate ] [ LC_CTYPE [] lc_ctype ] [ TABLESPACE [] tablespace ] [ CONNECTION L…

网络取证-Tomcat-简单

题干: 我们的 SOC 团队在公司内部网的一台 Web 服务器上检测到可疑活动。为了更深入地了解情况,团队捕获了网络流量进行分析。此 pcap 文件可能包含一系列恶意活动,这些活动已导致 Apache Tomcat Web 服务器遭到破坏。我们需要进一步调查这一…

【LeetCode:2103. 环和杆 | 模拟】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

nexus搭建npm私有镜像

假设有一个nexus服务,地址为: http://10.10.33.50:8081/ 创建存储空间 登录后创建存储空间,选择存储类型为File,并设置空间名称为 npm-private 创建仓库类型 2.1 创建hosted类型仓库 创建一个名为 npm-hosted 的本地类型仓库 2.…

SpringCloud 微服务全栈体系(十)

第十章 RabbitMQ 一、初识 MQ 1. 同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得…

弹幕互动游戏运营模式你知道吗?

分享一个今年最新的风口项目,弹幕互动游戏。这种游戏类型是,主播真人出镜主持游戏过程,观众在直播间通过评论和礼物可以加入,并且操控游戏里的角色,等于是游戏和直播的结合。那普通人怎么把握这波风口呢? 说…