7

Я добавил 3 кнопки в ConstraintLayout. Я добавил кнопку, чтобы отключить или включить эти кнопки.Как сгруппировать несколько просмотров в ConstraintLayout

Если я использовал обычный LinearLayout. Я мог бы поместить все кнопки в линейную компоновку и включить или отключить этот конкретный макет.

Но я использую ConstraintLayout. Поэтому мне нужно отключить или включить все эти кнопки, я считаю, что в ConstraintLayout должен быть способ группировать разные представления.

Просьба направлять меня, как взгляды группы в ConstriantLayout

enter image description here

<Button 
     android:text="Button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button" 
     android:layout_marginTop="16dp" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintBottom_toBottomOf="parent" 
     android:layout_marginBottom="16dp" 
     android:layout_marginStart="16dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginLeft="16dp" /> 

    <Button 
     android:text="Button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button2" 
     app:layout_constraintBottom_toBottomOf="parent" 
     android:layout_marginBottom="16dp" 
     android:layout_marginStart="8dp" 
     app:layout_constraintLeft_toRightOf="@+id/button" 
     android:layout_marginLeft="8dp" 
     app:layout_constraintTop_toTopOf="@+id/button" /> 

    <Button 
     android:text="Button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button3" 
     app:layout_constraintTop_toTopOf="@+id/button2" 
     android:layout_marginEnd="16dp" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginRight="16dp" 
     android:layout_marginStart="8dp" 
     app:layout_constraintLeft_toRightOf="@+id/button2" 
     android:layout_marginLeft="8dp" /> 
+0

Посмотрите, возможно, Цепочки могут помочь вам: https://developer.android.com/reference/android/support/constraint/ConstraintLayout.html#Chains – krossovochkin

ответ

1

В настоящее время нет никакого способа, вы можете сделать это. Вы должны отключать каждую кнопку по отдельности, потому что ограничения добавляются к каждому виджету в constraintlayout.

Чтобы группировать представления, вам необходимо использовать группы представлений, что не имеет смысла в контексте компоновки ограничений.

Редактировать

С Constraint макетом: 1.1.0-beta1, вы можете мнение группы с помощью android.support.constraint.Group.

25

Да, как я знаю, вы можете обрабатывать видимость с использованием линейного макета, но не включать/отключать представления, я думаю, исправьте меня, если я ошибаюсь. Так что теперь в ConstraintLayout также мы можем обрабатывать видимость определенной группы представлений с использованием Группы

Это новая функция, представленная в ConstraintLayout, которая в настоящее время в бета-версии.

Как добавить бета ConstraintLayout проекта выполните указанные ниже действия

добавить Maven поддержку в проекте Gradle файла, как показано ниже

allprojects { 
    repositories { 
     maven { url 'https://maven.google.com' } 
     jcenter() 
    } 
} 

затем в зависимости gardle приложение добавить ConstarintLayout библиотеки зависимость

теперь вы должны добавить группу в вашем ConstraintLayout, как следовать

<android.support.constraint.Group 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:constraint_referenced_ids="button7,button3,button2" 
     android:id="@+id/group" /> 

, где в группе реф.номере

app:constraint_referenced_ids="button7,button3,button2" 

содержит разделенной запятую вида идентификаторов вы хотите обрабатывать во время выполнения , поэтому в действии вы просто связываете группу как показано ниже и обрабатываете видимость

import android.support.constraint.Group; //import statement in activity 

Group group=(Group)findViewById(R.id.group);//bind view from xml 
group.setVisibility(View.VISIBLE);//this will visible all views 
group.setVisibility(View.GONE);//this will set Gone to all views 
group.setVisibility(View.INVISIBLE);//this will set INVISIBLE to all view 
+1

Возможно ли изменить цвет фона для группы? –

+0

@ IbrahimDisouki Я думаю, что его там нет, если что-нибудь, что я нашел, я обновлю здесь. – Pavan

 Смежные вопросы

  • Нет связанных вопросов^_^