Элементы группы Android Layout - PullRequest
       0

Элементы группы Android Layout

0 голосов
/ 08 октября 2018

У меня есть следующий макет:

<!-- section 1 -->
<LinearLayout>
 <ImageView/>
 <TextView/>
</LinearLayout>
<ViewPager/>
<View/>

<!-- section 2 -->
<LinearLayout>
 <ImageView/>
 <TextView/>
</LinearLayout>
<ViewPager/>
<View/>

<!-- section 3 -->
<LinearLayout>
 <ImageView/>
 <TextView/>
</LinearLayout>
<ViewPager/>
<View/>

У меня есть эти 3 раздела, и я пытаюсь установить видимость каждого раздела.Но если я пытаюсь установить видимость раздела 1, мне нужно установить каждый элемент (LinearLayout, ViewPager, View) отдельно.Есть ли способ, которым я могу сгруппировать каждый раздел, поэтому мне нужно настроить видимость только один раз, и весь раздел будет отключен?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Если макет верхнего уровня - ConstraintLayout, вы можете поместить все представления каждого раздела в группу.Установка видимости группы изменяет видимость всех ее участников.См. Group.

Этот класс управляет видимостью набора ссылочных виджетов.Ссылки на виджеты добавляются в список идентификаторов, разделенных запятыми, например:

 <android.support.constraint.Group
          android:id="@+id/group"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:visibility="visible"
          app:constraint_referenced_ids="button4,button9" />

Если макет верхнего уровня не является ConstraintLayout, то у вас есть несколько вариантов.

  1. Установите видимость каждого элемента секции отдельно (пытаясь избежать этого, но это вариант).Вы можете настроить собственные ссылки на внутренние группы, чтобы упростить ее.

  2. Оберните каждый раздел в другой ViewGroup, например FrameLayout.Установка видимости ViewGroup родителя влияет на видимость всех его потомков.

- раздел 1 -FrameLayoutLinearLayoutImageViewTextView/ LinearLayoutViewPagerПосмотреть- раздел 2 -FrameLayoutLinearLayoutImageViewTextView/ LinearLayoutViewPagerПосмотреть- раздел 3 -FrameLayoutLinearLayoutImageViewTextView/ LinearLayoutViewPagerПосмотреть

Конечно, ViewGroup может быть LinearLayout, RelativeLayout и т. Д. - все, что имеет смысл.FrameLayout используется в качестве примера.

0 голосов
/ 08 октября 2018

просто вызовите setVisibility () для родительского макета, содержащего представление, которое вы хотите скрыть в основном действии;

, в котором флаги VISIBILITY в setVisibility будут определять видимость представления. Есть 3 флага

  1. VISIBLE
  2. INVISIBLE
  3. GONE

в вашем случае, скажем, раздел 1 имеет линейный макет с Id layout_one

код должен выглядеть так:

LinearLayout layoutOne= (LinearLayout) findViewById(R.id.layout_one);
    layoutOne.setVisibility(View.INVISIBLE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...