9

我有一个GridView,它显示字母的图片发生的事情是,每次在最后一行中都有更少的字母。最后一行左对齐,这看起来不太好,所以我想让最后一行居中,任何建议

我的GridView代码:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/grid_view"
    android:layout_width="fill_parent"
    android:layout_marginRight="20dp"
    android:layout_marginTop="20dp"
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:columnWidth="70dp"
    android:horizontalSpacing="10dp"
    android:verticalSpacing="20dp"
    android:gravity="center"
    android:stretchMode="spacingWidthUniform" >  

</GridView>

在此处输入图像描述

在此处输入图像描述

4

4 回答 4

0

我有同样的问题,但我使用两个gridviews 管理这个,第一个gridview 显示除最后一行之外的行,第二个gridview 显示最后一行。这是实现我需要的最简单的方法。我还没有找到更好的解决方案。也期待看到一个漂亮而简单的方法。

于 2015-01-31T09:31:28.127 回答
0

对于那些仍在寻找解决方案的人,这是我的看法,创建一个TableLayout和,并为每个TableRow设置它的权重android:weightSum="4",不要忘记添加android:gravity="center"

有关完整代码,请查看此要点以供参考。

于 2019-04-23T23:30:38.850 回答
0

您可以尝试使用不可见元素,这不是最有效的解决方案,但很简单,您可以放置​​两个元素,一个在开头,一个在行尾,并使它们不可见

于 2016-07-21T15:44:59.370 回答
-1

您可以在相对布局内将网格行居中,然后添加android:layout_centerHorizontal="true"到字母表ImageView中。假设它们是ImageView的。

所以你GridView会被包裹在这样的东西中:

<RelativeLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_cotent"
    android:orientation="horizontal" >

    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/grid_view"
        android:layout_width="fill_parent"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:layout_height="fill_parent"
        android:numColumns="auto_fit"
        android:columnWidth="70dp"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="20dp"
        android:gravity="center"
        android:stretchMode="spacingWidthUniform" >  

    </GridView>
</RelativeLayout>

单个字母图像需要android:layout_centerHorizontal="true"这样:

<ImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_centerHorizontal="true"
</ImageView>
于 2014-01-19T17:41:26.167 回答