Ale*_*nko 4 android android-jetpack android-jetpack-compose
我将举一个问题的例子,假设我在框中有两个按钮
@Preview
@Composable
fun testView() {
Box(modifier = Modifier
.size(200.dp)
) {
Button(onClick = {
Log.e("HERE", "First btn")
}) {
Text(text = "Btn1")
}
Button(modifier = Modifier
onClick = {
Log.e("HERE", "Second btn")
}) {
Text(text = "Btn2")
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我会看到Btn2
(实际上位于顶部Btn1
),当我单击日志时,我会看到Second btn
预期的结果。
假设我需要隐藏Btn2
以便用户可以单击Btn1
,为了以旧的方式执行此操作,我会添加View.GONE
并且它会起作用,但是在 JetpackCompose 中(据我所知)只有一个alpha
选项,所以我尝试将其设置为0f
像这样
...
Button(modifier = Modifier
.alpha(0f),
onClick = {
Log.e("HERE", "Second btn")
}) {
Text(text = "Btn2")
}
...
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我Btn1
在屏幕上看到(如预期),但是,当我单击时,我在日志中看到Second btn
。
因此,很明显,alpha
可见性正在改变,但视图本身仍然存在。
问题是有没有View.GONE
像以前那样的替代方案?
如果您希望第二个按钮消失,则方法是不输出第二个按钮。
if( some_condition) {
Button(modifier = Modifier
onClick = {
Log.e("HERE", "Second btn")
}) {
Text(text = "Btn2")
}
}
Run Code Online (Sandbox Code Playgroud)
如果 some_condition 为 false,则不会输出 Button,也不会出现。
归档时间: |
|
查看次数: |
2050 次 |
最近记录: |