news 2026/4/18 6:38:51

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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())}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 18:18:31

彼得林奇的“隐形冠军“在新兴行业的识别

彼得林奇的"隐形冠军"在新兴行业的识别 关键词:彼得林奇、隐形冠军、新兴行业、识别方法、投资策略 摘要:本文聚焦于彼得林奇所提出的“隐形冠军”概念在新兴行业中的识别。首先介绍了研究的背景、目的、预期读者等内容。接着阐述了“隐形冠军”的核心概念及与新兴…

作者头像 李华
网站建设 2026/4/11 20:39:18

【课程设计/毕业设计】基于springboot的农村康养院敬老院平台的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/16 19:59:13

Unix/Linux 系统及其 Shell 环境在 50 年前就定下的“祖宗之法”

rg -g "*.py" "import" 其中 为什么py 跟import之间不加, 这个规则是哪里定义的? 这是一个非常深刻的问题,触及到了计算机操作系统的底层逻辑。 直接回答你:这个规则是由你的“Shell(命令行解释器)”定义的,而不是 ripgrep 这个软件定义的。 所谓…

作者头像 李华
网站建设 2026/4/18 7:57:57

国际行情波动期的跨境运营:把“团队执行力”做成护城河

很多跨境团队在行情好的时候&#xff0c;靠一两条爆款、一两次投放拉升就能跑起来&#xff1b;但行情一波动&#xff0c;问题会集中暴露&#xff1a;信息不同步、执行不一致、决策靠感觉、出了问题临时救火。结果就是——同样的市场&#xff0c;同样的平台&#xff0c;有人越做…

作者头像 李华
网站建设 2026/4/15 19:04:51

电脑“清灰”劝退指南:你以为的保养,可能是对主板的“酷刑”

一个手残党的血泪控诉&#xff0c;看完能省下一台新电脑钱序章&#xff1a;当电脑开始“吟唱”不知从何时起&#xff0c;你的电脑学会了“咏叹调”——一开游戏或剪视频&#xff0c;机箱风扇就发出像要起飞穿越大气层般的尖锐嘶吼。桌面忽然卡成PPT&#xff0c;摸一下机箱侧板&…

作者头像 李华