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

时间:2010-08-12 08:15:13

标签: android layout 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>

5 个答案:

答案 0 :(得分:96)

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

来自API docs

  

public void setVisibility(int visibility)

     

自:API Level 1

     

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

     

<强>参数:
      visibility其中一个可见,不可见或已经消失。

请注意,LinearLayoutViewGroup,而View又是{{3}}。也就是说,您可能会调用myLinearLayout.setVisibility(View.VISIBLE)

这是有道理的。如果您有使用AWT / Swing的任何经验,您可以从ContainerComponent之间的关系中识别它。 (Container Component。)

答案 1 :(得分:13)

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

答案 2 :(得分:6)

在xml文件中使用此布局

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

在.class文件中定义布局

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

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

 linearLayout.setVisibility(View.VISIBLE);

如果你想隐藏布局只需写

 linearLayout.setVisibility(View.INVISIBLE);

答案 3 :(得分:1)

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

答案 4 :(得分:1)

以编程方式使用此:

 view.setVisibility(View.GONE); //For GONE
 view.setVisibility(View.INVISIBLE); //For INVISIBLE
 view.setVisibility(View.VISIBLE); //For VISIBLE
相关问题