我已经实现了一个像这样的离散 slider :
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
YourProjectNameTheme(darkTheme = false) {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(all = 4.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
MyUI()
}
}
}
}
}
}
@Composable
private fun MyUI() {
var sliderValue by remember {
mutableStateOf(1f)
}
Slider(
value = sliderValue,
onValueChange = { sliderValue_ ->
sliderValue = sliderValue_
},
onValueChangeFinished = {
// this is called when the user completed selecting the value
},
valueRange = 1f..21f,
steps = 6
)
Text(text = sliderValue.toString())
}
当我点击刻度线时,我期望得到确切的数字(例如 3、6、9、12、15、18)。但是,它显示最接近的浮点值。如何解决这个问题?
最佳答案
如果steps
属性大于0,则指定离散值的数量,均匀分布在整个值范围内。
在这种情况下,您必须使用valueRange = 0f..21f
Slider(
//...
valueRange = 0f..21f,
steps = 6
)
关于android - Jetpack Compose 离散 slider 未显示确切的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75184847/