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

Dar*_*ski 56 layout android visibility

有可能改变View的可见性,但是如何以编程方式更改XML中定义的布局的可见性?如何获得布局对象?

<LinearLayout
    android:id="@+id/contacts_type"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:visibility="gone">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 103

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

来自API文档:

public void setVisibility(int visibility)

    自:API级别1

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

参数:
visibility      VISIBLE,INVISIBLE或GONE之一.

请注意,LinearLayoutViewGroup这又是一个View.也就是说,你可能会打电话给他们myLinearLayout.setVisibility(View.VISIBLE).

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

  • LinearLayout继承自View,所以这应该工作http://developer.android.com/reference/android/widget/LinearLayout.html (5认同)

Sup*_*054 13

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


pav*_*vel 7

在xml文件中使用此布局

<LinearLayout
  android:id="@+id/contacts_type"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:visibility="gone">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在.class文件中定义布局

 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.contacts_type);
Run Code Online (Sandbox Code Playgroud)

现在,如果你想要这个布局,只需写

 linearLayout.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)

如果你想隐藏布局只需写

 linearLayout.setVisibility(View.INVISIBLE);
Run Code Online (Sandbox Code Playgroud)