GridLayout (pas GridView) – Espaces entre les cellules

J'utilise GridLayout (support) pour afficher ImageView s dans ma application. Il y a 3 colonnes et 5 lignes. Le problème est que les cellules du GridLayout automatiquement un espace entre elles. Je ne définis aucun rembourrage ou marge pour les cellules. Veuillez vous référer à l'image ci-dessous. Toutes les cellules sont ajoutées dynamiquement et voici comment j'ajoute ces cellules.

Obtenir l'écran Largeur et Hauteur:

  • Org.eclipse.swt.SWTException: "Widget is disposé" lors de l'ouverture d'AndroidManifest.xml
  • Comment ajouter une image à un bouton dans Android
  • Hauteur de vue de l'en-tête dans une liste
  • Comment exécuter AVD Manager sur Mac
  • Propriété RadioGroup checkedButton
  • Faire Android WebView ne stockez pas les cookies ou les mots de passe
  •  Point size = new Point(); getWindowManager().getDefaultDisplay().getSize(size); screenWidth = size.x; screenHeight = size.y; rowHeight = (int) (screenHeight * 0.2); 

    Ajouter une vue à GridLayout:

      GridLayout.LayoutParams params = new GridLayout.LayoutParams( getSpec(rowColumn[0]), getSpec(rowColumn[1])); params.height = rowHeight; if (rowColumn[1].equalsIgnoreCase("col_full")) { params.width = (int) (screenWidth); } else if (rowColumn[1].equalsIgnoreCase("col_two_part")) { params.width = (int) (screenWidth * 0.6); } else { params.width = (int) (screenWidth * 0.3); } ImageButton image = (ImageButton) imageHashMap .get(reOrderedButtonsListCopy.get(i)); image.setLayoutParams(params); gridLayout.addView(image, params); 

    Mise en page XML:

     <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.xx.xxx" android:id="@+id/scrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <android.support.v7.widget.GridLayout xmlns:app="http://schemas.android.com/apk/res/com.xx.xxx" android:id="@+id/gridlayout_main" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="2dp" app:columnCount="3" app:rowCount="5" > </android.support.v7.widget.GridLayout> </LinearLayout> </ScrollView> 

    Résultat courant:

    Entrez la description de l'image ici

    Les lignes rouges montrent les espaces entre les cellules. En outre, il existe un espace sur le côté gauche de GridLayout. Je n'ai donné que layout_margin comme layout_margin . Des raisons pour lesquelles ce rembourrage a lieu?

    [MODIFIER]

    Les modifications suivantes ont supprimé les espacements.

     gridLayout = (GridLayout) findViewById(R.id.gridlayout_main); gridLayout.setUseDefaultMargins(false); gridLayout.setAlignmentMode(GridLayout.ALIGN_BOUNDS); gridLayout.setRowOrderPreserved(false); 

    Reportez-vous à l'image ci-dessous.

    Entrez la description de l'image ici

  • Google AppInvites break build
  • La classe doit être déclarée abstraite ou mettre en œuvre une méthode abstraite
  • Comment puis-je obtenir la date et l'heure du fournisseur du réseau?
  • Le récepteur de diffusion fonctionne différemment sur différentes versions d'Android (4.1.1 et 4.2.2)
  • Android: références à un contexte et des fuites de mémoire
  • Transparent status-bar / system-ui sur 4.4 Kit Kat
  • One Solution collect form web for “GridLayout (pas GridView) – Espaces entre les cellules”

    Trouvé la solution.

    Les modifications suivantes ont supprimé les espacements.

     gridLayout = (GridLayout) findViewById(R.id.gridlayout_main); gridLayout.setUseDefaultMargins(false); gridLayout.setAlignmentMode(GridLayout.ALIGN_BOUNDS); gridLayout.setRowOrderPreserved(false); 

    Reportez-vous à l'image ci-dessous.

    Entrez la description de l'image ici

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.