Jetpack Compose Slider,Android高级工程师进阶学习】

单于季
2023-12-01
  • onValueChange 进度改变的监听
  • modifier修饰符
  • enabled 是否可用
  • valueRange 进度值的范围 默认是0到1
  • steps 将进度条平分成(steps+1)段,比如分成2段。如果我们进度条在第一段之间拉,超过第一段的一半就自动到第一段,没超过一半就回退到开始位置。
  • onValueChangeFinished 进度改变完成的监听
  • interactionSource 可以处理状态的,比如按下的时候什么效果,正常时候什么效果。类似之前再布局文件里写Selector。 比如我们下面的例子中设置,如果是选中时候边框线的颜色是绿色,没有选中时候是黑色。 interactionSource.collectIsPressedAsState() 判断是否按下状态interactionSource.collectIsFocusedAsState() 判断是否获取焦点的状态interactionSource.collectIsDraggedAsState() 判断是否拖动
    我们讲Button的时候讲个该属性Button的讲解
  • colors 设置各种颜色 默认实现是SliderDefaults.colors。我们来具体看看代码```
    @Composable
    fun colors(
    thumbColor: Color = MaterialTheme.colors.primary,
    disabledThumbColor: Color = MaterialTheme.colors.onSurface
    .copy(alpha = ContentAlpha.disabled)
    .compositeOver(MaterialTheme.colors.surface),
    activeTrackColor: Color = MaterialTheme.colors.primary,
    inactiveTrackColor: Color = activeTrackColor.copy(alpha = InactiveTrackAlpha),
    disabledActiveTrackColor: Color =
    MaterialTheme.colors.onSurface.copy(alpha = DisabledActiveTrackAlpha),
    disabledInactiveTrackColor: Color =
    disabledActiveTrackColor.copy(alpha = DisabledInactiveTrackAlpha),
    activeTickColor: Color = contentColorFor(activeTrackColor).copy(alpha = TickAlpha),
    inactiveTickColor: Color = activeTrackColor.copy(alpha = TickAlpha),
    disabledActiveTickColor: Color = activeTickColor.copy(alpha = DisabledTickAlpha),
    disabledInactiveTickColor: Color = disabledInactiveTrackColor
    .copy(alpha = DisabledTickAlpha)
    )
    *   thumbColor 进度条那个小圆形的颜色
    *   disabledThumbColor 不可用时候的小圆形的颜色
    *   activeTrackColor 进度条的进度颜色
    *   inactiveTrackColor 进度条的底色
    *   disabledActiveTrackColor 不可用时候的进度条的颜色
    *   disabledInactiveTrackColor 不可用时候的进度条的底色
    *   activeTickColor 断点处的圆点的进度的颜色,比如我们steps比如设置成2,这时候进度条是被平分成3段。在平分断点处,会有三个小圆点。activeTickColor就表示该小圆点的进度的颜色。
    *   inactiveTickColor 断点处的圆点的的底色,比如我们steps比如设置成2,这时候进度条是被平分成3段。在平分断点处,会有三个小圆点。inactiveTickColor就表示该小圆点的底色。
    *   disabledActiveTickColor 不可用时候的平分处的小圆点的进度颜色
    *   disabledInactiveTickColor 不可用时候的平分处的小圆点的底色
    
    

举例:

@Preview()
@Composable
fun sliderTest(){
    val valueState = remember {
        mutableStateOf(1.0f)
    }
    val interationSource = remember {
        MutableInteractionSource()
    }
    val pressState = interationSource.collectIsPressedAsState()
    Slider(
        value = valueState.value,
        onValueChange = {
            valueState.value = it
        },
        modifier = Modifier.fillMaxWidth(),
        enabled = true,
        valueRange = 0f..1f,
        steps = 2,
        onValueChangeFinished = {
            Log.e("ccm","==Change Finish=")
        },
        interactionSource = interationSource,
        colors = SliderDefaults.colors(thumbColor = if(pressState.value) Color.Green else Color.Red
            ,activeTrackColor = Color.Green
            ,inactiveTrackColor = Color.Yellow,
            activeTickColor = Color.Blue,inactiveTickColor = Color.Black)
    )
} 

二:CircularProgressIndicator

CircularProgressIndicator 圆形进度,loading

@Composable
fun CircularProgressIndicator(
    modifier: Modifier = Modifier,
    color: Color = MaterialTheme.colors.primary,
    strokeWidth: Dp = ProgressIndicatorDefaults.StrokeWidth
){...} 
  • modifier 修饰符
  • color 进度的颜色
  • strokeWidth 进度的stroke的宽度

举例:

@Preview()
@Composable
fun circularProgressIndicatorTest(){
### Android高级架构师

由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记做整理一份资料。

**[CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](https://codechina.csdn.net/m0_60958482/android_p7)**

*   **330页PDF Android学习核心笔记(内含上面8大板块)**

![](https://img-blog.csdnimg.cn/img_convert/34eef9648d03bf00d78288ef7a09e098.png)

![](https://img-blog.csdnimg.cn/img_convert/14130c7d00f67c4ca2460981a3774a14.png)

*   **Android学习的系统对应视频**

*   **Android进阶的系统对应学习资料**

![](https://img-blog.csdnimg.cn/img_convert/3ef7608520a97721c226db34ffecd998.png)

*   **Android BAT部分大厂面试题(有解析)**

![](https://img-blog.csdnimg.cn/img_convert/5d963a4a7ca2c1f08670bb9c6fd9d062.png)


好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。

AT部分大厂面试题(有解析)**

[外链图片转存中...(img-b1bWwg7V-1630849122301)]


好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。

 类似资料: