J'ai ajouté 3 boutons dans un ConstraintLayout. J'ai ajouté un bouton pour désactiver ou activer ces boutons.
Si j'utilisais LinearLayout normal. J'aurais pu mettre tous les boutons dans une disposition linéaire et activer ou désactiver cette disposition particulière.
Mais j'utilise ConstraintLayout. J'ai donc besoin de désactiver ou d'activer tous ces boutons, je crois qu'il doit y avoir un moyen dans ConstraintLayout de regrouper différentes vues.
Veuillez me guider sur la façon de regrouper les vues dans ConstriantLayout
<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" />
Oui, car je sais que vous pouvez gérer la visibilité en utilisant une disposition linéaire mais pas Activer/Désactiver les vues, je pense, corrigez-moi si je me trompe. Alors maintenant, dans ConstraintLayout , nous pouvons également gérer la visibilité d'un groupe particulier de vues en utilisant le groupe
Il s'agit d'une nouvelle fonctionnalité introduite dans ConstraintLayout qui est actuellement en version bêta.
Comment ajouter beta ConstraintLayout au projet, suivez les étapes ci-dessous
ajouter la prise en charge maven dans le fichier gradle du projet comme ci-dessous
allprojects {
repositories {
maven { url 'https://maven.google.com' }
jcenter()
}
}
puis dans les dépendances de l'application, ajoutez la dépendance de la bibliothèque ConstarintLayout
compile 'com.Android.support.constraint:constraint-layout:1.1.0-beta3'
maintenant, vous devez ajouter un groupe dans votre ConstraintLayout comme suit
<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" />
où dans l'ID de référence du groupe
app:constraint_referenced_ids="button7,button3,button2"
contient les identifiants de vue séparés par des virgules que vous souhaitez gérer au moment de l'exécution , donc dans l'activité vous liez simplement Group comme ci-dessous et gérez la visibilité
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
EDIT Version stable de ConrtsaintLayout 1.1.0 publiée le 12 avril 2018 https://androidstudio.googleblog.com/2018/04/constraintlayout- 110.html
implémentation 'com.Android.support.constraint: constraint-layout: 1.1.0'
Modifier Android X Si quelqu'un utilise Android x package, vous pouvez trouver des informations sur le package ici
Actuellement, il n'y a aucun moyen de le faire. Vous devez désactiver chaque bouton individuellement, car des contraintes sont ajoutées à chaque widget dans la disposition de contraintes.
Pour regrouper des vues, vous devez utiliser des groupes de vues, ce qui n'a pas de sens dans le contexte de la disposition des contraintes.
Modifier
Avec la disposition Contrainte: 1.1.0-beta1, vous pouvez grouper les vues à l'aide de Android.support.constraint.Group
.