Как программно изменить видимость макета - PullRequest
54 голосов
/ 12 августа 2010

Есть способ изменить видимость 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 ]

97 голосов
/ 12 августа 2010

Посмотрите на View.setVisibility(View.GONE / View.VISIBLE / View.INVISIBLE).

Из документов API :

public void setVisibility(int visibility)

С: Уровень API 1

Установить включенное состояние этого представления.
Связанные атрибуты XML: android: видимость

Параметры:
visibility Один из ВИДИМЫХ, НЕВИДИМЫХ или УТВЕРЖДЕННЫХ.

Обратите внимание, что LinearLayout - это ViewGroup, что, в свою очередь, View. То есть вы можете очень хорошо назвать, например, myLinearLayout.setVisibility(View.VISIBLE).

Это имеет смысл. Если у вас есть опыт работы с AWT / Swing, вы узнаете его по соотношению Container и Component. (A Container является Component.)

13 голосов
/ 13 июня 2013
TextView view = (TextView) findViewById(R.id.textView);
view.setText("Add your text here");
view.setVisibility(View.VISIBLE);
6 голосов
/ 16 ноября 2016

Используйте этот макет в вашем 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);
1 голос
/ 07 сентября 2018

programaticaaly использовать это:

 view.setVisibility(View.GONE); //For GONE
 view.setVisibility(View.INVISIBLE); //For INVISIBLE
 view.setVisibility(View.VISIBLE); //For VISIBLE
1 голос
/ 12 августа 2010

Вы можете изменить видимость макета так же, как для обычного просмотра.Используйте setVisibility (View.GONE) и т. Д. Все макеты являются просто Views, они имеют View в качестве родителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...