[英]How to animate visibilty of icon within text field in Jetpack Compose
當我輸入文本並且當TextField
文本為空時,我試圖為TextField
中的trailingIcon
的可見性設置動畫,但由於某種原因,發生這種情況時沒有任何反應。
以前的代碼(在使用AnimatedVisibility
之前)
TextField(
modifier = Modifier.fillMaxWidth(),
value = mText,
onValueChange = {
mText = it
},
trailingIcon = {
when {
mText.isNotEmpty() -> OutlinedIconButton(
onClick = { mText = "" }
) {
Icon(
imageVector = Icons.Default.Clear,
contentDescription = "Clear"
)
}
}
}
)
當前代碼(使用AnimatedVisibility
之后)
OutlinedTextField(
modifier = Modifier.fillMaxWidth(),
value = mText,
onValueChange = {
mText = it
},
trailingIcon = {
AnimatedVisibility(
visible = visible,
enter = fadeIn(),
exit = fadeOut()
) {
IconButton(
onClick = { mText = "" }
) {
Icon(
imageVector = Icons.Default.Clear,
contentDescription = "Clear"
)
}
}
}
)
你可以使用類似的東西:
var text by remember { mutableStateOf("") }
val isVisible by remember {
derivedStateOf {
text.isNotEmpty()
}
}
OutlinedTextField(
value = text,
onValueChange = {
text = it
},
trailingIcon = {
AnimatedVisibility(
visible = isVisible,
enter = fadeIn(),
exit = fadeOut()
) {
IconButton(
onClick = { text = "" }
) {
Icon(
imageVector = Icons.Default.Clear,
contentDescription = "Clear"
)
}
}
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.