1

Hy,Constraint Layout masquer Afficher avec le poids de la chaîne

Je souhaite que 2 vues répartissent également la largeur de l'écran dans un objet ConstraintLayout. Chaînes utilisées et poids pour réaliser cela.

<Button 
    android:id="@+id/buttonLeft" 
    android:layout_width="0dip" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="0dp" 
    android:layout_marginRight="0dp" 
    android:text="Left" 
    app:layout_constraintHorizontal_chainStyle="spread_inside" 
    app:layout_constraintHorizontal_weight="1" 
    app:layout_constraintLeft_toLeftOf="@+id/guidelineLeft" 
    app:layout_constraintRight_toLeftOf="@+id/buttonRight" 
    tools:layout_editor_absoluteY="0dp"/> 

<Button 
    android:id="@+id/buttonRight" 
    android:layout_width="0dip" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="0dp" 
    android:text="Right" 
    app:layout_constraintHorizontal_weight="1" 
    app:layout_constraintLeft_toRightOf="@+id/buttonLeft" 
    app:layout_constraintRight_toLeftOf="@+id/guidelineRight" 
    tools:layout_editor_absoluteY="0dp"/> 

Maintenant je veux cacher la vue de droite et la gauche pour grandir pour remplir la largeur.

Je pensais que cela pourrait fonctionner hors de la boîte à cause de la visiblity behaviour

Mais comme le bouton gauche a une contrainte sur la bonne, il ne se développe pas.

Des idées pour résoudre ce problème?

Répondre

3

cacher la vue de droite fonctionne:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 

    <Button 
     android:id="@+id/buttonLeft" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="0dp" 
     android:layout_marginRight="0dp" 
     android:text="Left" 
     app:layout_constraintHorizontal_chainStyle="spread_inside" 
     app:layout_constraintHorizontal_weight="1" 
     app:layout_constraintLeft_toLeftOf="@+id/guidelineLeft" 
     app:layout_constraintRight_toLeftOf="@+id/buttonRight" 
     tools:layout_editor_absoluteY="0dp"/> 

    <Button 
     android:id="@+id/buttonRight" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="0dp" 
     android:text="Right" 
     android:visibility="gone" 
     app:layout_constraintHorizontal_weight="1" 
     app:layout_constraintLeft_toRightOf="@+id/buttonLeft" 
     app:layout_constraintRight_toLeftOf="@+id/guidelineRight" 
     tools:layout_editor_absoluteY="0dp"/> 

    <android.support.constraint.Guideline 
     android:id="@+id/guidelineLeft" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:layout_constraintGuide_begin="20dp" 
     android:orientation="vertical" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/guidelineRight" 
     android:orientation="vertical" 
     app:layout_constraintGuide_end="70dp" /> 

</android.support.constraint.ConstraintLayout> 

... mais cachant la vue de gauche ne fonctionne pas. J'ai déposé un bug ici: https://code.google.com/p/android/issues/detail?id=234897

+0

merci pour la réponse rapide. mais si j'utilise votre mise en page proposée, la vue de gauche ne se développe pas lorsque la bonne est cachée. au moins l'éditeur de disposition ne l'affiche pas. voir [ici] (https://imgur.com/a/TpKD4) – cwiesner

+1

fonctionne maintenant avec le correctif inclus dans 1.0.1 - thx – cwiesner