Как программно изменить видимость макета

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

Решение

Посмотри на 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.)

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

Используйте этот макет в вашем 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);

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

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

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

Другие вопросы по тегам