2017-07-01 1 views
2

Tenir compte suivant la mise en page xml:question ConstraintLayout avec le poids horizontal

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

    <Button 
     android:id="@+id/b1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="B1" 
     app:layout_constraintHorizontal_weight="1" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toLeftOf="@+id/b2"/> 

    <Button 
     android:id="@+id/b2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="B2" 
     app:layout_constraintLeft_toRightOf="@+id/b1" 
     app:layout_constraintRight_toLeftOf="@id/b3"/> 

    <Button 
     android:id="@+id/b3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="B3" 
     app:layout_constraintLeft_toRightOf="@+id/b2" 
     app:layout_constraintRight_toRightOf="parent"/> 
</android.support.constraint.ConstraintLayout> 

qui produit cette disposition qui est ce que je veux:

enter image description here

Mais si je marque B3 allé alors la largeur B1 est régler sur 0 et B2 se déplacer vers la gauche. Alors que je veux B2 prendre la place de B3 et B1 à développer:

enter image description here

Toute idée de ce que je pourrais faire mal?

Répondre

0

mis android:layout_width = "0dp" et app:layout_constraintHorizontal_weight="1" pour B2 et vous êtes prêt à partir.

EDIT: Il suffit de retirer app:layout_constraintRight_toLeftOf="@id/b3" de B2.

+0

Mais cela va changer la largeur de B2, ce n'est pas ce que je veux. Regardez la première capture d'écran. Je veux que B1 soit flexible, B2 et B3 devraient être 'wrap_content'. –

+0

Il suffit de retirer la 'application: layout_constraintRight_toLeftOf = « @ id/b3 »' de B2 en B3 la vue est réglé sur la visibilité GONE la mise en page sur embrouille ce qu'il faut garder ce point de vue B2 à gauche. Désolé, j'ai mal compris votre question au début. –

+0

Je voulais garder la chaîne bidirectionnelle. Mais de toute façon, supprimer 'app: layout_constraintRight_toLeftOf =" @ id/b3 "' a résolu mon problème. –