在Android上的GridView中使用哪个stretchMode

Pan*_*tsa 14 layout android gridview

以下是我的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"
/>
Run Code Online (Sandbox Code Playgroud)

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

use*_*040 15

组合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"
        />
Run Code Online (Sandbox Code Playgroud)


Yuv*_*uvi 6

这是非常简单的家伙,只需删除该行

android:columnWidth="@dimen/gridview_column_width"
Run Code Online (Sandbox Code Playgroud)

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

android:numColumns = "4"
Run Code Online (Sandbox Code Playgroud)

这对我来说很好