Dans la vue de grille Android, il y a un espace supplémentaire entre les lignes de la vue de grille. Je n'ajoute aucun espace à la grille.
voici mes fichiers xml
<GridView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/grid"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:horizontalSpacing="5px"
Android:numColumns="3"
Android:columnWidth="50dip"
Android:verticalSpacing="0dip"
Android:gravity="center"
/>
et l'autre xml pour l'imageview qui ajoute la vue à la grille est
<ImageView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/singlePhoto"
Android:layout_gravity="top"
Android:layout_width="145dip"
Android:layout_height="145dip"
Android:layout_marginTop="0dip"
Android:layout_marginBottom="0dip"
>
</ImageView>
Dans la classe Adapter, le code est
if(mView == null){
mView = mLayoutInflater.inflate(R.layout.newsgridthumbpic, null);
}
ImageView mImage = (ImageView)mView.findViewById(R.id.singlePhoto);
PhotoGridInfoSet mInfo = (PhotoGridInfoSet)details.get(position);
if(mImage != null){
mImage.setTag(mInfo.getPhotoThumbNailString());
mImage.setVerticalScrollBarEnabled(true);
mImage.setVerticalFadingEdgeEnabled(true);
}
}!
L'espace est entre les lignes de gridview. Je n'ai ajouté aucun espace dans le code. Il existe toujours un espacement vertical. Je ne comprends pas pourquoi il y a un espace entre les lignes de gridview. Cet espace n'apparaît pas dans le périphérique/émulateur hdpi. Ce problème concerne les périphériques/émulateurs mdpi et ldpi.
J'ai la solution à ce problème.
Pour résoudre ce problème, j'ai besoin d'ajouter 1 ligne dans mon fichier xml
Android:adjustViewBounds="true"
et après avoir ajouté ceci. l'espace n'apparaît pas maintenant
Il suffit de mettre les 2 dernières lignes dans gridView
<GridView
Android:numColumns="2"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:id="@+id/gridView"
Android:horizontalSpacing="0dip"
Android:verticalSpacing="0dip"/>
il suffit de vérifier que votre "newsgridthumbpic" la mise en page ne contient pas le rembourrage supplémentaire ni aucune image d'arrière-plan ayant une hauteur importante que votre élément de vue en grille.
Vérifiez également que vous fournissez largeur de colonne comme 50dip mais votre "imageview" la largeur est 145 trempettes.
voyez cela c'est utile -
http://developer.Android.com/guide/topics/ui/layout/gridview.html
(SO m'a demandé d'ajouter quelques caractères supplémentaires pour que l'édition soit soumise)
Paramétrer Android: verticalSpacing dans gridview sur des valeurs négatives. va supprimer l'espace vertical.
(Par exemple: Android: verticalSpacing = "- 10dp")
tester avec un certain nombre pour obtenir la bonne valeur
<GridView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/grid"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:horizontalSpacing="5px"
Android:numColumns="3"
Android:columnWidth="50dip"
Android:verticalSpacing="0dip"
Android:gravity="center"/>
<ImageView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/singlePhoto"
Android:layout_width="145dip"
Android:layout_height="145dip"
Android:scaleType="fitXY">
</ImageView>
Mettez la ligne suivante dans votre méthode getView () ...
mImage.setPadding(0, 0, 0, 0);
J'espère que cela t'aidera.
Il semble que votre image soit redimensionnée pour s’adapter à la largeur de colonne de 50dp tout en maintenant les proportions. Cela introduit un tas d'espace non rempli dans la disposition verticale. Si vous souhaitez que votre colonne ait une largeur de 50 pdp, la façon la plus simple de résoudre ces problèmes d'espacement est d'ajuster votre vue image à une largeur de 50 pd et d'ajuster la hauteur des vues d'image à une proportion proportionnelle.