2017-09-30 3 views
0

Je cette GridLayout:Faire de chaque colonne ont la même largeur

<android.support.v7.widget.GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="5dp" 
    app:columnCount="3" 
    app:rowCount="4"> 

    <FrameLayout 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnSpan="2" 
     app:layout_columnWeight="2" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="some text" 
      android:textColor="@android:color/white" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginStart="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="some text" 
      android:textColor="@android:color/white" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="some text" 
      android:textColor="@android:color/white" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="some text" 
      android:textColor="@android:color/white" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnSpan="2" 
     app:layout_columnWeight="2" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="some text" 
      android:textColor="@android:color/white" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="some text" 
      android:textColor="@android:color/white" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="big text changing" 
      android:textColor="@android:color/black" /> 

    </FrameLayout> 

    <FrameLayout 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     app:layout_columnWeight="1" 
     app:layout_gravity="fill" 
     app:layout_rowWeight="1"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_green_light" 
      android:gravity="start" 
      android:padding="10dp" 
      android:text="some text" 
      android:textColor="@android:color/white" /> 

    </FrameLayout> 

</android.support.v7.widget.GridLayout> 

qui produit ceci:

Grid Layout

Remarqué la dernière ligne? La colonne du milieu est plus grande à cause de son plus gros texte. Ce TextView layout_height est défini sur wrap_content, et la frameLayout layout_columnWeight parent est définie sur 1. Pourquoi le FrameLayout devient-il plus grand au lieu de TextView?

Je souhaite que toutes les colonnes aient la même largeur, malgré le texte à l'intérieur. Si le texte est en quelque sorte gros, alors le TextView devrait augmenter sa hauteur dans le FrameLayout.

Y at-il un moyen d'y parvenir? Quel est le problème avec ma mise en page?

Répondre

1

Ajoutez android:layout_width="0dp" au grand cadre de texte pour aligner sa largeur en fonction de votre poids défini. Vous devrez peut-être faire de même pour les autres mises en page de cadres.

+0

Vous avez absolument raison! Je vous remercie! – Ravers