0

Im en utilisant une disposition de grille sur une application. Les colonnes fonctionnent bien mais les lignes me posent un problème.Android: les lignes GridLayout sont toutes regroupées

Je veux 4 lignes réparties uniformément sur l'image que j'utilise. Mais pour une raison quelconque, les rangées sont toutes groupées avec seulement la dernière rangée devant les autres. C'est ma première fois en utilisant un GridLayout et je ne vois pas ce que je fais mal.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/imageView" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:src="@drawable/pitch"/> 

<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:rowCount="4" 
    android:numColumns="5" 
    android:id="@+id/formation" 
    android:layout_alignBottom="@+id/imageView"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Gk" 
     android:layout_row="0" 
     android:layout_column="1" 
     android:layout_gravity="center" 
     android:id="@+id/gk" 
     android:layout_columnSpan="3" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DL" 
     android:layout_row="1" 
     android:layout_column="0" 
     android:layout_gravity="center" 
     android:id="@+id/dl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DC" 
     android:layout_row="1" 
     android:layout_column="1" 
     android:layout_gravity="center" 
     android:id="@+id/dcl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DC" 
     android:layout_row="1" 
     android:layout_column="3" 
     android:layout_gravity="center" 
     android:id="@+id/dcr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DR" 
     android:layout_row="1" 
     android:layout_column="4" 
     android:layout_gravity="center" 
     android:id="@+id/dr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ML" 
     android:layout_row="2" 
     android:layout_column="0" 
     android:layout_gravity="center" 
     android:id="@+id/ml" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="MC" 
     android:layout_row="2" 
     android:layout_column="1" 
     android:layout_gravity="center" 
     android:id="@+id/mcl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="MC" 
     android:layout_row="2" 
     android:layout_column="3" 
     android:layout_gravity="center" 
     android:id="@+id/mcr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="MR" 
     android:layout_row="2" 
     android:layout_column="4" 
     android:layout_gravity="center" 
     android:id="@+id/mr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="FC" 
     android:layout_row="3" 
     android:layout_column="1" 
     android:layout_gravity="center" 
     android:id="@+id/fcl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="FC" 
     android:layout_row="3" 
     android:layout_column="3" 
     android:layout_gravity="center" 
     android:id="@+id/fcr" /> 

</GridLayout> 

enter image description here

+0

utilisez linearlayout au lieu de gridlayout –

Répondre

1

vous suggère d'utiliser linearlayout au lieu de gridlayout, pour définir l'image en arrière-plan, vous devez utiliser FrameLayout comme dans le code ci-dessous,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@drawable/next" 
      android:scaleType="centerCrop" /> 
    </FrameLayout> 

    <LinearLayout 
     android:id="@+id/formation" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:weightSum="4"> 

     <LinearLayout 
      android:id="@+id/formation1" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center"> 

      <Button 
       android:id="@+id/gk" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:gravity="center" 
       android:text="Gk" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/formation2" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center"> 

      <Button 
       android:id="@+id/dl" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="DL" /> 

      <Button 
       android:id="@+id/dcl" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="DC" /> 

      <Button 
       android:id="@+id/dcr" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="DC" /> 

      <Button 
       android:id="@+id/dr" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="DR" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/formation3" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center"> 

      <Button 
       android:id="@+id/ml" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="ML" /> 

      <Button 
       android:id="@+id/mcl" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="MC" /> 

      <Button 
       android:id="@+id/mcr" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="MC" /> 

      <Button 
       android:id="@+id/mr" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="MR" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/formation4" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center"> 

      <Button 
       android:id="@+id/fcl" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="FC" /> 

      <Button 
       android:id="@+id/fcr" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="FC" /> 
     </LinearLayout> 
    </LinearLayout> 

</RelativeLayout> 

Espérons que cela est utile.

+0

dites-moi si vous faites face à un problème @discodowney –

+0

Vive la réponse mais je vais travailler tit en utilisant layout_columnWeight et layout_rowWeight. Mais malade garder cela à l'esprit pour l'avenir au cas où la grille me pose d'autres problèmes. Merci. – discodowney

0

Considérons au lieu d'utiliser un LinearLayout vertical contenant LinearLayouts horizontales (GridLayouts ou plus) pour chaque rangée. Chaque vue de ligne peut alors avoir un layout_weight réglé sur la même valeur, de façon à ce que la même quantité d'espace leur soit allouée. Dans ce cas également mis leur layout_height à 0.

+0

Mais je veux que les boutons soient répartis sur toute l'image. Si j'enlève le parent du match et le rende enveloppant le contenu, tous les boutons sont regroupés dans la moitié supérieure de l'image. Pouvez-vous me dire comment je répartis les rangées uniformément sur toute l'image? – discodowney

+0

J'ai compris. Je devais fournir android: layout_columnWeight = "1" and android: layout_rowWeight = "1" à chaque bouton – discodowney

+0

Désolé, j'ai mal lu. Edité –

0

Vous pouvez ajouter:

android:layout_columnWeight="1" 
android:layout_rowWeight="1" 

dans chaque bouton. Comme ceci:

<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:rowCount="4" 
    android:numColumns="5" 
    android:id="@+id/formation" 
    android:layout_alignBottom="@+id/imageView"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Gk" 
     android:layout_row="0" 
     android:layout_column="1" 
     android:layout_gravity="center" 
     android:id="@+id/gk" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_columnSpan="3" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DL" 
     android:layout_row="1" 
     android:layout_column="0" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_gravity="center" 
     android:id="@+id/dl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DC" 
     android:layout_row="1" 
     android:layout_column="1" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_gravity="center" 
     android:id="@+id/dcl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DC" 
     android:layout_row="1" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="3" 
     android:layout_gravity="centerl" 
     android:id="@+id/dcr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="DR" 
     android:layout_row="1" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="4" 
     android:layout_gravity="center" 
     android:id="@+id/dr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ML" 
     android:layout_row="2" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="0" 
     android:layout_gravity="center" 
     android:id="@+id/ml" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="MC" 
     android:layout_row="2" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="1" 
     android:layout_gravity="center" 
     android:id="@+id/mcl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="MC" 
     android:layout_row="2" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="3" 
     android:layout_gravity="center" 
     android:id="@+id/mcr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="MR" 
     android:layout_row="2" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="4" 
     android:layout_gravity="center" 
     android:id="@+id/mr" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="FC" 
     android:layout_row="3" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="1" 
     android:layout_gravity="center" 
     android:id="@+id/fcl" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="FC" 
     android:layout_row="3" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_column="3" 
     android:layout_gravity="center" 
     android:id="@+id/fcr" /> 

</GridLayout>