web-dev-qa-db-fra.com

Comment supprimer l'espace entre les lignes de la vue de la grille dans Android

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.

Image for reference. this is what happening right now.

15
Dipali

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

38
Dipali

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"/>
2
Deepak Sood

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.

0
akkilis

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)

0
NagarjunaReddy

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

0
user5077219
<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>
0
hardip

Mettez la ligne suivante dans votre méthode getView () ...

mImage.setPadding(0, 0, 0, 0);

J'espère que cela t'aidera.

0
himanshu

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.

0
Nick Campion