【问题标题】:How to change visibility of layout programmatically如何以编程方式更改布局的可见性
【发布时间】:2011-03-28 19:23:17
【问题描述】:

有办法改变 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>

【问题讨论】:

    标签: android layout visibility


    【解决方案1】:

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

    来自API docs

    public void setVisibility(int visibility)

        自:API 级别 1

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

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

    请注意,LinearLayoutViewGroup,而 View 又是 View。也就是说,你可以打电话给myLinearLayout.setVisibility(View.VISIBLE)

    这是有道理的。如果您对 AWT/Swing 有任何经验,您会从ContainerComponent 之间的关系中认出它。 (Container 是一个 Component。)

    【讨论】:

    【解决方案2】:
    TextView view = (TextView) findViewById(R.id.textView);
    view.setText("Add your text here");
    view.setVisibility(View.VISIBLE);
    

    【讨论】:

      【解决方案3】:

      在你的 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);
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          这是一种程序化方法:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多