Как удалить пространство между строками сетки в android

В представлении сетки Android имеется дополнительное пространство между строками сетки. Я не добавляю места в gridview.

Вот мои 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"
                />

а другой xml для изображения, который добавляет представление в gridview,

        <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>

В классе адаптера код

        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);
                }
        }!

Пространство находится между строками gridview. Я не добавил места где-нибудь в коде. Тем не менее, есть вертикальное расстояние. Я не могу понять, почему есть пространство между строками gridview. Это пространство не отображается в устройстве/эмуляторе hdpi. Эта проблема возникает в устройствах/эмуляторах mdpi и ldpi.

Image for reference. this is what happening right now.

Ответ 1

У меня есть решение этой проблемы.

Чтобы решить эту проблему, мне нужно добавить 1 строку в мой XML файл

android:adjustViewBounds="true"

и после добавления. пространство не появляется сейчас

Ответ 2

Просто поместите последние 2 строки в 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"/>

Ответ 3

Поместите следующую строку в метод ur getView()...

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

Надеюсь, это поможет вам.

Ответ 4

Похоже, что ваше изображение масштабируется, чтобы соответствовать ширине столбца 50dp, сохраняя соотношение сторон. Это вводит кучу незаполненного пространства в вертикальной компоновке. Если вы хотите, чтобы ваш столбец был шириной 50dp, самый простой способ решить эти проблемы с интервалом - настроить изображение на ширину 50dp и отрегулировать высоту изображения, пропорциональную этому.

Ответ 6

просто проверьте, что ваш макет "newsgridthumbpic" не содержит дополнительного дополнения или любого фонового изображения, имеющего большую высоту, который является элементом вашей сетки.

Также проверьте, что вы снабжая column_width как 50dip, но ваша "ширина изображения равна 145 dip.

Ответ 7

Установите android: verticalSpacing к отрицательным значениям. Это работает для меня (например: android: verticalSpacing = "- 18dp" )

Ответ 8

<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>