当前位置: 首页 > news >正文

Android Jetpack Compose - Switch(切换)、Slider(滑块)、RangeSlider(范围滑块)

一、Switch(切换)

1、基本介绍
funSwitch(checked:Boolean,onCheckedChange:((Boolean)->Unit)?,modifier:Modifier=Modifier,thumbContent:(@Composable()->Unit)?=null,enabled:Boolean=true,colors:SwitchColors=SwitchDefaults.colors(),interactionSource:MutableInteractionSource?=null,){}
参数说明
checked当前开关状态
onCheckedChange状态变化时的回调
modifier布局修饰符
thumbContent自定义滑块内容
enabled是否启用
colors自定义颜色,通过SwitchDefaults.colors()配置
interactionSource自定义交互状态反馈
2、演示
varcheckedbyremember{mutableStateOf(true)}Box(modifier=Modifier.fillMaxSize()){Switch(modifier=Modifier.align(Alignment.Center),checked=checked,onCheckedChange={checked=it})}
varcheckedbyremember{mutableStateOf(true)}Box(modifier=Modifier.fillMaxSize()){Switch(modifier=Modifier.align(Alignment.Center),checked=checked,onCheckedChange={checked=it},thumbContent=if(checked){{Icon(imageVector=Icons.Filled.Check,contentDescription=null,modifier=Modifier.size(SwitchDefaults.IconSize),)}}else{null})}
varcheckedbyremember{mutableStateOf(true)}Box(modifier=Modifier.fillMaxSize()){Switch(modifier=Modifier.align(Alignment.Center),checked=checked,onCheckedChange={checked=it},colors=SwitchDefaults.colors(checkedThumbColor=MaterialTheme.colorScheme.primary,checkedTrackColor=MaterialTheme.colorScheme.primaryContainer,uncheckedThumbColor=MaterialTheme.colorScheme.secondary,uncheckedTrackColor=MaterialTheme.colorScheme.secondaryContainer,))}

二、Slider(滑块)

1、基本介绍
funSlider(value:Float,onValueChange:(Float)->Unit,modifier:Modifier=Modifier,enabled:Boolean=true,valueRange:ClosedFloatingPointRange<Float>=0f..1f,@IntRange(from=0)steps:Int=0,onValueChangeFinished:(()->Unit)?=null,colors:SliderColors=SliderDefaults.colors(),interactionSource:MutableInteractionSource=remember{MutableInteractionSource()}){}
参数说明
value当前滑块的值
onValueChange值变化时的回调
modifier布局修饰符
enabled是否启用
valueRange值范围
stepssteps = 0(默认):滑块在 valueRange 内连续滑动
steps = 3:将范围分成 4 个等距档位,档位数 = steps + 1
onValueChangeFinished松开手指结束滑动时的回调
colors自定义颜色,通过SliderDefaults.colors()配置
interactionSource自定义交互状态反馈
2、演示
varsliderPositionbyremember{mutableFloatStateOf(0f)}Column(modifier=Modifier.fillMaxSize().padding(16.dp),horizontalAlignment=Alignment.CenterHorizontally,verticalArrangement=Arrangement.Center){Slider(value=sliderPosition,onValueChange={sliderPosition=it})Text(text=sliderPosition.toString())}
varsliderPositionbyremember{mutableFloatStateOf(0f)}Column(modifier=Modifier.fillMaxSize().padding(16.dp),horizontalAlignment=Alignment.CenterHorizontally,verticalArrangement=Arrangement.Center){Slider(value=sliderPosition,onValueChange={sliderPosition=it},colors=SliderDefaults.colors(thumbColor=MaterialTheme.colorScheme.secondary,activeTrackColor=MaterialTheme.colorScheme.secondary,inactiveTrackColor=MaterialTheme.colorScheme.secondaryContainer,),steps=3,)Text(text=sliderPosition.toString())}
varsliderPositionbyremember{mutableFloatStateOf(0f)}Column(modifier=Modifier.fillMaxSize().padding(16.dp),horizontalAlignment=Alignment.CenterHorizontally,verticalArrangement=Arrangement.Center){Slider(value=sliderPosition,onValueChange={sliderPosition=it},colors=SliderDefaults.colors(thumbColor=MaterialTheme.colorScheme.secondary,activeTrackColor=MaterialTheme.colorScheme.secondary,inactiveTrackColor=MaterialTheme.colorScheme.secondaryContainer,),steps=3,valueRange=0f..50f)Text(text=sliderPosition.toString())}

三、RangeSlider(范围滑块)

1、基本介绍
funRangeSlider(value:ClosedFloatingPointRange<Float>,onValueChange:(ClosedFloatingPointRange<Float>)->Unit,modifier:Modifier=Modifier,enabled:Boolean=true,valueRange:ClosedFloatingPointRange<Float>=0f..1f,@IntRange(from=0)steps:Int=0,onValueChangeFinished:(()->Unit)?=null,colors:SliderColors=SliderDefaults.colors()){}
参数说明
value当前滑块的值
onValueChange值变化时的回调
modifier布局修饰符
enabled是否启用
valueRange值范围
stepssteps = 0(默认):滑块在 valueRange 内连续滑动
steps = 3:将范围分成 4 个等距档位,档位数 = steps + 1
onValueChangeFinished松开手指结束滑动时的回调
colors自定义颜色,通过SliderDefaults.colors()配置
2、演示
varsliderPositionbyremember{mutableStateOf(0f..100f)}Column(modifier=Modifier.fillMaxSize().padding(16.dp),horizontalAlignment=Alignment.CenterHorizontally,verticalArrangement=Arrangement.Center){RangeSlider(value=sliderPosition,onValueChange={sliderPosition=it},onValueChangeFinished={Log.i(TAG,"松开手指结束滑动了")},valueRange=0f..100f)Text(sliderPosition.start.toString()+" - "+sliderPosition.endInclusive.toString())}
varsliderPositionbyremember{mutableStateOf(0f..100f)}Column(modifier=Modifier.fillMaxSize().padding(16.dp),horizontalAlignment=Alignment.CenterHorizontally,verticalArrangement=Arrangement.Center){RangeSlider(value=sliderPosition,onValueChange={sliderPosition=it},valueRange=0f..100f,steps=3,)Text(sliderPosition.start.toString()+" - "+sliderPosition.endInclusive.toString())}
http://www.jsqmd.com/news/367747/

相关文章:

  • 【预测模型】基于深度置信网络DBN锂电池寿命预测附Matlab代码
  • 一键部署科研环境:天翼云息壤科研助手解放科研生产力
  • 为什么需要RAG?推荐一个从零搭建RAG的项目,含教学视频
  • 2026/2/10
  • 刷机过程之安装FastBoot驱动 解决fastboot waiting for any device问题
  • Windows 性能分析器WPT深度解析
  • 【预测模型】沙丘猫算法+哈里斯鹰+鲸鱼+黏菌算法+猎食者算法优化OS-ELM模型的锂电池SOH预测附Matlab代码
  • Java毕设项目推荐-基于Java的足球俱乐部训练中心管理系统基于springboot的足球俱乐部青训管理系统的设计与实现【附源码+文档,调试定制服务】
  • cpu的fetch/prefetch
  • 拯救大模型“幻觉”?Python_RAG九大架构全解析!
  • 别盲目跟随!家梁带你看清AI背后的操控与谎言
  • 网络安全学习路线图
  • 【重磅整理】2025计算机专业就业方向全景图:薪资、技能与前景深度剖析
  • 计算机Java毕设实战-基于springboot的农村康养院敬老院平台的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 【预测模型】天牛须算法优化BP神经网络的电力负荷预测附matlab代码
  • Android 切换应用语言 - 指南
  • 计算机Java毕设实战-基于SpringBoot+Vue+MySQL的足球俱乐部管理基于springboot的足球俱乐部青训管理系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 家梁眼中的AI乱象:惊讶、哭笑不得、还有点恐怖
  • SharePoint Online 嵌入 Power BI 报表
  • 计算机毕业设计springboot宠物托运服务系统 SpringBoot萌宠出行预约管理系统 SpringBoot爱宠远程护送信息平台
  • 【课程设计/毕业设计】基于Web足球青训俱乐部管理后台系统开发基于springboot的足球俱乐部青训管理系统的设计与实现【附源码、数据库、万字文档】
  • 独立开发配置
  • CAN FD总线协议深度解析:技术特点与应用优势
  • 【课程设计/毕业设计】基于springboot的农村康养院敬老院平台的设计与实现【附源码、数据库、万字文档】
  • 从零学网络安全 - 数据库安全与 SQL 注入(二)SQL 注入实战:联合查询
  • Z世代语境下的春节营销:海外红人如何为出海品牌“重新定价”
  • 考试满分,实战却“翻车”!《自然·医学》刊文:AI医疗助手为何难以应用?
  • 国际行情波动期的跨境运营:把“团队执行力”做成护城河
  • java+vue+SpringBoot高校专业实习管理系统(程序+数据库+报告+部署教程+答辩指导)
  • 【免费新增】MonkeyCode 支持 Minimax M2.1 模型!零成本解锁复杂场景AI研发,5分钟搞定小游戏/后端接口