Android: 隐藏一个元素
Android: hide an element
想象一个 Android 应用程序有 3 个线性布局的 TextView,一个依次在另一个下方,然后是 2 个按钮。 1个按钮需要隐藏第二个文本视图,第二个按钮需要使其再次可见。
唯一的要求是当第二个文本视图消失时,它不应占据任何 space,这意味着第三个文本视图应占据其 space 当它消失时。
我尝试使用 INVISIBLE 和 VISIBLE 设置进行此操作,但是,空白占位符仍保留在第二个文本视图的位置。
我尝试使用 GONE,它消除了空白 space,但是我无法再次显示第二个文本视图。
你知道实现这个的方法吗?
示例:
////////////////////////////
initial state:
textview1
textview2
textview3
button1
button2
--> user pushes button1
new state:
textview1
textview3
button1
button2
--> user pushes button2
new state: initial state
////////////////////////////
谢谢
两种方式:
XML
在您的 XML 文件中。如果你想有初步的知名度
android:visibility="gone" <-- hides
或
android:visibility="visible" <-- makes it visible
Java
在 java 文件中。当您需要以编程方式更改它时
textView.setVisibility(View.GONE);//makes it disappear
或
textView.setVisibility(View.VISIBLE);//makes it visible again
不同的可见度:
- 可见
自己说:将视图设置为可见
- 隐形
隐藏视图,但它仍然占据 space。
- 走了
隐藏视图,使其不占用 space。
在Kotlin中,可以这样设置
textView.visibility = if(visible) View.VISIBLE else View.GONE
或者您可以在视图中添加扩展
fun View.setVisible(visible: Boolean) {
visibility = if (visible) {
View.VISIBLE
} else {
View.GONE
}
}
像这样使用它
textView,setVisible(true)
想象一个 Android 应用程序有 3 个线性布局的 TextView,一个依次在另一个下方,然后是 2 个按钮。 1个按钮需要隐藏第二个文本视图,第二个按钮需要使其再次可见。
唯一的要求是当第二个文本视图消失时,它不应占据任何 space,这意味着第三个文本视图应占据其 space 当它消失时。
我尝试使用 INVISIBLE 和 VISIBLE 设置进行此操作,但是,空白占位符仍保留在第二个文本视图的位置。
我尝试使用 GONE,它消除了空白 space,但是我无法再次显示第二个文本视图。
你知道实现这个的方法吗?
示例:
////////////////////////////
initial state:
textview1
textview2
textview3
button1
button2
--> user pushes button1
new state:
textview1
textview3
button1
button2
--> user pushes button2
new state: initial state
////////////////////////////
谢谢
两种方式:
XML
在您的 XML 文件中。如果你想有初步的知名度
android:visibility="gone" <-- hides
或
android:visibility="visible" <-- makes it visible
Java
在 java 文件中。当您需要以编程方式更改它时
textView.setVisibility(View.GONE);//makes it disappear
或
textView.setVisibility(View.VISIBLE);//makes it visible again
不同的可见度:
- 可见
自己说:将视图设置为可见
- 隐形
隐藏视图,但它仍然占据 space。
- 走了
隐藏视图,使其不占用 space。
在Kotlin中,可以这样设置
textView.visibility = if(visible) View.VISIBLE else View.GONE
或者您可以在视图中添加扩展
fun View.setVisible(visible: Boolean) {
visibility = if (visible) {
View.VISIBLE
} else {
View.GONE
}
}
像这样使用它
textView,setVisible(true)