Search code examples
androidlayoutvisibility

How to change visibility of layout programmatically


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

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

Solution

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

    From the API docs:

    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.

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

    This makes sense. If you have any experience with AWT/Swing, you'll recognize it from the relation between Container and Component. (A Container is a Component.)