Как изменить видимость компоновки программно
Есть способ изменить видимость представления, но как я могу изменить программную видимость макета, определенного в XML? Как получить объект макета?
<LinearLayout
android:id="@+id/contacts_type"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone">
</LinearLayout>
Ответы
Ответ 1
Посмотрите View.setVisibility(View.GONE / View.VISIBLE / View.INVISIBLE)
.
Из API docs:
public void setVisibility(int visibility)
Поскольку: Уровень API 1
Установите разрешенное состояние этого представления.
Связанные атрибуты XML: android: видимость
Параметры:
visibility
Один из VISIBLE, INVISIBLE или GONE.
Обратите внимание, что LinearLayout
является ViewGroup
который, в свою очередь, является View
. То есть, вы можете очень хорошо позвонить, например, myLinearLayout.setVisibility(View.VISIBLE)
.
Это имеет смысл. Если у вас есть опыт работы с AWT/Swing, вы узнаете его из отношения между Container
и Component
. (A Container
a 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) и т.д. Все макеты - это просто Views, у них есть View как их родитель.
Ответ 5
programaticaaly использовать это:
view.setVisibility(View.GONE); //For GONE
view.setVisibility(View.INVISIBLE); //For INVISIBLE
view.setVisibility(View.VISIBLE); //For VISIBLE