如何处理 Jetpack Compose 中文本的可见性?
How to handle visibility of a Text in Jetpack Compose?
我有这个文本:
Text(
text = stringResource(id = R.string.hello)
)
如何显示和隐藏这个组件?
我正在使用 Jetpack Compose 版本 '1.0.0-alpha03'
正如 CommonsWare 所述,compose 是一个声明性工具包,您将组件绑定到一个状态(例如:isVisible
),然后 compose 将智能地决定哪些可组合项依赖于该状态并重新组合它们。例如:
@Composable
fun MyText(isVisible: Boolean){
if(isVisible){
Text(text = stringResource(id = R.string.hello))
}
}
您还可以将 AnimatedVisibility()
可组合项用于动画。
如上所述,您可以像这样使用 AnimatedVisibility:
AnimatedVisibility(visible = yourCondition) { Text(text = getString(R.string.yourString)) }
使用 1.0.x
您可以简单地添加一个条件,例如:
if(isVisible){
Text("....")
}
类似于:
var visible by remember { mutableStateOf(true) }
Column() {
Text("Text")
Button(onClick = { visible = !visible }) { Text("Toggle") }
}
如果您想为其内容的出现和消失设置动画,您可以使用 AnimatedVisibility
var visible by remember { mutableStateOf(true) }
Column() {
AnimatedVisibility(
visible = visible,
enter = fadeIn(
// Overwrites the initial value of alpha to 0.4f for fade in, 0 by default
initialAlpha = 0.4f
),
exit = fadeOut(
// Overwrites the default animation with tween
animationSpec = tween(durationMillis = 250)
)
) {
// Content that needs to appear/disappear goes here:
Text("....")
}
Button(onClick = { visible = !visible }) { Text("Toggle") }
}
我有这个文本:
Text(
text = stringResource(id = R.string.hello)
)
如何显示和隐藏这个组件?
我正在使用 Jetpack Compose 版本 '1.0.0-alpha03'
正如 CommonsWare 所述,compose 是一个声明性工具包,您将组件绑定到一个状态(例如:isVisible
),然后 compose 将智能地决定哪些可组合项依赖于该状态并重新组合它们。例如:
@Composable
fun MyText(isVisible: Boolean){
if(isVisible){
Text(text = stringResource(id = R.string.hello))
}
}
您还可以将 AnimatedVisibility()
可组合项用于动画。
如上所述,您可以像这样使用 AnimatedVisibility:
AnimatedVisibility(visible = yourCondition) { Text(text = getString(R.string.yourString)) }
使用 1.0.x
您可以简单地添加一个条件,例如:
if(isVisible){
Text("....")
}
类似于:
var visible by remember { mutableStateOf(true) }
Column() {
Text("Text")
Button(onClick = { visible = !visible }) { Text("Toggle") }
}
如果您想为其内容的出现和消失设置动画,您可以使用 AnimatedVisibility
var visible by remember { mutableStateOf(true) }
Column() {
AnimatedVisibility(
visible = visible,
enter = fadeIn(
// Overwrites the initial value of alpha to 0.4f for fade in, 0 by default
initialAlpha = 0.4f
),
exit = fadeOut(
// Overwrites the default animation with tween
animationSpec = tween(durationMillis = 250)
)
) {
// Content that needs to appear/disappear goes here:
Text("....")
}
Button(onClick = { visible = !visible }) { Text("Toggle") }
}