Jetpack Compose 浮动按钮、Slider 滑动条、LinearProgressIndicator 水平进度条、CircularProgressIndicator 圆形进度条的使用
FloatingActionButton 浮动按钮
class SliderActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
testBase()
}
}
@Preview
@Composable
private fun testBase() {
Scaffold(
floatingActionButton = {
FloatingActionButton(
onClick = {
print("点击浮动窗口")
Toast.makeText(this, "点击浮动窗口", Toast.LENGTH_LONG).show()
},
shape = CircleShape,
content = { Icon(Icons.Filled.Add, contentDescription = "Add") },
modifier = Modifier.size(80.dp)
)
}
) {
Column() {
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center
) {
Text(text = "Compose", fontSize = 30.sp, color = Color.Black)
}
Text(text = "Slider 滑动条", fontSize = 20.sp, color = Color.Blue)
testSlider()
Spacer(modifier = Modifier.height(dp))
testLinearProgressIndicator()
Spacer(modifier = Modifier.height(dp))
testCircularProgressIndicator()
}
}
}
{
sliderValue = remember { mutableStateOf() }
Slider(
value = sliderValue.value,
onValueChange = { newValue -> sliderValue.value = newValue },
valueRange = .,
steps = ,
modifier = Modifier.width(dp)
)
}
{
progress remember { mutableStateOf() }
loading remember { mutableStateOf() }
Column(
modifier = Modifier.fillMaxWidth().padding(dp).height(dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(, fontSize = sp, color = Color.Blue)
Text()
Spacer(modifier = Modifier.height(dp))
LinearProgressIndicator(progress = progress, modifier = Modifier.fillMaxWidth())
Spacer(modifier = Modifier.height(dp))
Spacer(modifier = Modifier.height(dp))
(loading){
LinearProgressIndicator(modifier = Modifier.fillMaxWidth())
}
Spacer(modifier = Modifier.height(dp))
Row(horizontalArrangement = Arrangement.spacedBy(dp)) {
Button(
onClick = {
progress =
loading =
},
enabled = !loading
) {
Text()
}
Button(
onClick = {
(progress < ) progress +=
},
enabled = loading && progress <
) {
Text()
}
Button(onClick = {
loading =
progress =
}) {
Text()
}
}
}
}
{
progress remember { mutableStateOf() }
loading remember { mutableStateOf() }
Column(
modifier = Modifier.fillMaxWidth().padding(dp),
horizontalAlignment = Alignment.CenterHorizontally,
) {
Text(, fontSize = sp, color = Color.Blue)
CircularProgressIndicator(modifier = Modifier.size(dp))
Spacer(modifier = Modifier.height(dp))
Box(contentAlignment = Alignment.Center){
CircularProgressIndicator(
progress = progress,
modifier = Modifier.size(dp),
strokeWidth = dp
)
Text(
text = ,
style = MaterialTheme.typography.headlineMedium
)
Spacer(modifier = Modifier.height(dp))
Row(horizontalArrangement = Arrangement.spacedBy(dp)) {
CircularProgressIndicator(modifier = Modifier.size(dp), strokeWidth = dp)
Text(, color = Color.Red)
}
Spacer(modifier = Modifier.height(dp))
Button(onClick = {
progress =
loading =
(i ){
CoroutineScope(Dispatchers.IO).launch {
delay()
}
progress = i /
}
loading =
}) {
Text()
}
}
}
}
}