1

Je souhaite avoir deux boutons horizontaux, le premier prenant 60% de la largeur de la mise en page et le second 40%. Les deux boutons ont une largeur maximale pour les très grands écrans et dans ce cas, ils doivent être alignés à gauche. J'ai essayé avec LinearLayout comme illustré ci-dessous. Mais je ne suis pas sûr si la largeur maximum fonctionnerait avec le poids. Quelle est la bonne façon de mettre en œuvre cela?Boutons horizontaux avec largeur et poids maximum

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="40dp" 
    android:orientation="horizontal" 
    android:weightSum="1" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@id/eventTitle"> 

    <Button 
     android:id="@+id/one" 
     android:layout_width="0dp" 
     android:layout_height="80dp" 
     android:layout_weight=".6" 
     android:maxWidth="547dp" 
     android:text="One" /> 

    <Button 
     android:id="@+id/two" 
     android:layout_width="0dp" 
     android:layout_height="80dp" 
     android:layout_marginLeft="32dp" 
     android:layout_weight=".4" 
     android:maxWidth="349dp" 
     android:text="Two" /> 

+2

Si vous avez besoin d'une mise en page différente pour les écrans plus grands, alors pourquoi ne pas créer une nouvelle mise en page pour la dimension? https://developer.android.com/guide/practices/screens_support.html – blackpanther

Répondre

1

L'attribut maxWidth doit être réglé dans votre LinearLayout:

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="40dp" 
    android:orientation="horizontal" 
    android:weightSum="1" 
    android:maxWidth="896dp" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@id/eventTitle"> 

Retirez-le de votre point de vue de l'enfant et le poids correspondant sera utilisé.

+0

cela a fonctionné pour moi – png

1

Je pense que l'exigence est comme l'image suivante:

Click here two view the ConstraintLayout

Voici le code pour obtenir le même:

<android.support.constraint.ConstraintLayout 
    android:id="@+id/main_content" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"> 

    <android.support.constraint.Guideline 
     android:id="@+id/guideline" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="0.6" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_height="wrap_content" 
     android:layout_marginEnd="8dp" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginStart="16dp" 
     android:layout_marginTop="16dp" 
     android:layout_width="0dp" 
     android:text="Button" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toLeftOf="@+id/guideline" 
     app:layout_constraintTop_toTopOf="parent" /> 

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


</android.support.constraint.ConstraintLayout>