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:

  • Android BroadcastReceiver onReceive () appelé deux fois sur Android 4.0
  • TransformClassesAndResourcesWithProguardForRelease FAILED
  • Attendre 3 secondes ou cliquer sur l'utilisateur
  • Appeler setVolumeControlStream à partir d'un service
  • Test Android JUnit4
  • Android: StaggeredGridLayoutManager fait défiler vers le haut lors de l'initialisation
  •  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

  • Ressource Theme.AppCompat.Light non trouvée dans Android Studio
  • Comment puis-je contrôler l'écran mobile depuis le navigateur?
  • Quel est l'objectif de "android.intent.category.DEFAULT"?
  • Exemples d'interface utilisateur Android
  • Android TextView: Changer la couleur du texte sur le clic
  • Où Emulator Android stocker la base de données SQLite?
  • 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.