15

以下是我的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridviewgallery"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:columnWidth="@dimen/gridview_column_width"
    android:numColumns="auto_fit"
    android:verticalSpacing="0dp"
    android:horizontalSpacing="0dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    android:background="#444444"
/>

当我使用 android:stretchMode="columnWidth" 时,它会在列之间创建一个间隙(尽管它会填充屏幕宽度)如果我使用 android:stretchMode="none" ,它会左对齐并且在右侧有一个间隙屏幕的一侧(虽然现在列之间没有间隙)问题是我想要两者:填充屏幕宽度以及列之间没有间隙。如何实现?

4

3 回答 3

17

android:numColumns="auto_fit" android:stretchMode="columnWidth" 和的组合android:columnWidth="60dp" 将为您提供针对不同屏幕尺寸进行调整的布局。比固定列数要好得多。请参见下面的示例...

<GridView
        android:id="@+id/tablegrid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ffff7965"
        android:horizontalSpacing="5dp"
        android:verticalSpacing="5dp"
        android:layout_marginStart="5dp"
        android:layout_marginLeft="5dp"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:gravity="center"
        android:columnWidth="60dp"
        />
于 2014-11-06T09:21:39.297 回答
6

很简单,把线去掉就行了

android:columnWidth="@dimen/gridview_column_width"

您可以指定任意数量的列,我给定的列数 = 4

android:numColumns = "4"

这对我来说很好用

于 2013-07-10T09:54:15.970 回答
0

我知道这个问题有点老了,但这是我发现的一个答案,希望这对其他人有帮助,就像它在此处的文档中所说的那样android:stretchMode使用它会平等地拉伸列之间的间距。spacingWidthUniform

请参阅上面的链接了解更多信息。

于 2017-04-22T11:24:33.663 回答