在 Android Studio 可组合项中使用滑块

问题描述 投票:0回答:1

我正在尝试使用 Android Studio 编写 Android 应用程序。

看来最新的android studio只允许Kotlin。

我想要一个函数来生成一个滑块,该滑块将采用 0 到 1023 之间的起始值并返回同一范围内的新值。

我找到了一个例子,但我完全迷失了(我习惯了C)

这就是我目前拥有的,

@Composable
fun getValue():Float{
    return(513f)
}


@Preview
@Composable
fun SliderMinimalExample(){
    var sliderPosition by remember{mutableFloatStateOf(512f)}
    sliderPosition=getValue()   //returns 513
    Column {
        Slider(
            value = sliderPosition,
            onValueChange = { sliderPosition = it.roundToInt().toFloat() },
            //steps=0,
            valueRange=0f..1023f
        )
        Text(text = sliderPosition.toString())
    }
}

这种方式可以工作,从 512 开始,但当它从 getValue 获取值时,会更改为 513。 但是,我无法移动滑块,它卡在 513 上。 Android studio 添加了上面复制/粘贴中未显示的额外位, IE。

任何人都可以给我指出一个我可能理解的例子吗?

谢谢,

android-jetpack-compose slider
1个回答
0
投票

您添加了一个方法来获取 SliderPosition 的值:

@Composable
fun getValue():Float{
    return(513f)
}

你根本不需要这样做。这就是为什么该值始终为 513。

删除该方法及其调用,并将其放入可组合项中:

@Composable
fun SliderMinimalExample() {
    var sliderPosition by remember { mutableFloatStateOf(512f) }
    Column {
        Slider(
            value = sliderPosition,
            onValueChange = { sliderPosition = it.roundToInt().toFloat() },
            valueRange=0f..1023f
        )
        Text(text = sliderPosition.toString())
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.