Android 如何以编程方式更改布局的可见性

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3465841/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 10:17:53  来源:igfitidea点击:

How to change visibility of layout programmatically

androidlayoutvisibility

提问by Dariusz Bacinski

There is the way to change visibility of View, but how can I change programmatically visibility of layout defined in XML? How to get layout object?

有更改视图可见性的方法,但如何以编程方式更改 XML 中定义的布局的可见性?如何获取布局对象?

<LinearLayout
    android:id="@+id/contacts_type"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:visibility="gone">
</LinearLayout>

回答by aioobe

Have a look at View.setVisibility(View.GONE / View.VISIBLE / View.INVISIBLE).

看看View.setVisibility(View.GONE / View.VISIBLE / View.INVISIBLE)

From the API docs:

来自API 文档

public void setVisibility(int visibility)

    Since: API Level 1

    Set the enabled state of this view.
    Related XML Attributes: android:visibility

Parameters:
visibility     One of VISIBLE, INVISIBLE, or GONE.

public void setVisibility(int visibility)

    从:API 级别 1

    设置此视图的启用状态。
    相关 XML 属性: android:visibility

参数:
visibility     VISIBLE、INVISIBLE 或 GONE 之一。

Note that LinearLayoutis a ViewGroupwhich in turn is a View. That is, you may very well call, for instance, myLinearLayout.setVisibility(View.VISIBLE).

请注意,LinearLayoutaViewGroup又是 a View。也就是说,例如,您很可能会调用myLinearLayout.setVisibility(View.VISIBLE).

This makes sense. If you have any experience with AWT/Swing, you'll recognize it from the relation between Containerand Component. (A Containeris aComponent.)

这是有道理的。如果您在使用AWT / Swing的任何经验,你会从之间的关系认识它ContainerComponent。(AContainer是一个Component。)

回答by SuperNova1054

TextView view = (TextView) findViewById(R.id.textView);
view.setText("Add your text here");
view.setVisibility(View.VISIBLE);

回答by pavel

Use this Layout in your xml file

在您的 xml 文件中使用此布局

<LinearLayout
  android:id="@+id/contacts_type"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:visibility="gone">
</LinearLayout>

Define your layout in .class file

在 .class 文件中定义您的布局

 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.contacts_type);

Now if you want to display this layout just write

现在如果你想显示这个布局就写

 linearLayout.setVisibility(View.VISIBLE);

and if you want to hide layout just write

如果你想隐藏布局就写

 linearLayout.setVisibility(View.INVISIBLE);

回答by Konstantin Burov

You can change layout visibility just in the same way as for regular view. Use setVisibility(View.GONE) etc. All layouts are just Views, they have View as their parent.

您可以以与常规视图相同的方式更改布局可见性。使用 setVisibility(View.GONE) 等。所有布局都只是视图,它们的父视图是视图。

回答by Hanisha

this is a programatical approach:

这是一种程序化方法:

 view.setVisibility(View.GONE); //For GONE
 view.setVisibility(View.INVISIBLE); //For INVISIBLE
 view.setVisibility(View.VISIBLE); //For VISIBLE