Android - GridView没有在屏幕中居中

时间:2014-03-10 13:52:15

标签: android gridview

我在制作启动板活动时遇到了这个问题。我有一个GridView布局,其中填充了应用图标。我想把它放在屏幕上,但无论我尝试过什么都不能。如果图标不足以覆盖整个屏幕宽度,则GridView将与左侧对齐。我在GridView布局中添加了白色背景来显示问题。

我更改了programmaticaly ImageView的大小和GridView列的宽度以提供更多功能,因此我发现增加图像大小使其看起来居中。但我想让它集中在一起,无论图标数量或大小如何。有人可以帮忙吗? (我也尝试使用线性布局而不是GridView的相关性。没有区别)

GridView布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#ffffff" >
<GridView
    android:id="@+id/gridView1"
    android:numColumns="auto_fit"
    android:gravity="center"
    android:layout_gravity="center"
    android:columnWidth="70dp"
    android:stretchMode="columnWidth"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" >
</GridView>
</RelativeLayout>

单一网格项布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
    <ImageView
        android:id="@+id/grid_item_image"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:layout_height="wrap_content" >
    </ImageView>
</LinearLayout>

screenshot

1 个答案:

答案 0 :(得分:1)

对于居中在另一个布局(RelativeLayout)的中间,请使用

android:layout_centerVertical="true"
android:layout_centerHorizontal="true"

e.g。对于GridView:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
<GridView
    android:id="@+id/gridView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" >
</GridView>
</RelativeLayout>

为了让您的商品始终填满整个屏幕,请使用match_parent作为商品宽度,并使用权重