Android GridView中的文本仅在第一项中与中心对齐

Android GridView中的文本仅在第一项中与中心对齐,android,gridview,textview,centering,Android,Gridview,Textview,Centering,在我的Android应用程序中,我有一个GridView,附带BaseAdapter。在GridView的每个单元格中,我都有一个CardView,其中有一个图像和两个文本视图。问题是每个单元格的项目都应该与中心垂直对齐,但只有网格视图的第一个项目与中心垂直对齐 cellLayout.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.

在我的Android应用程序中,我有一个
GridView
,附带
BaseAdapter
。在
GridView
的每个单元格中,我都有一个
CardView
,其中有一个图像和两个文本视图。问题是每个单元格的项目都应该与
中心垂直
对齐,但只有
网格视图的第一个项目与
中心垂直
对齐

cellLayout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:card_view="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="4dp">

    <GridLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:columnCount="1"
        android:rowCount="3">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/itemImageList"
            android:layout_gravity="center|top|center_vertical"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/itemNameList"
            android:layout_gravity="center|center_vertical"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/itemPriceList"
            android:layout_gravity="center|bottom|center_vertical"/>

    </GridLayout>

</android.support.v7.widget.CardView>

在GridView中有3列,因此只有第一行中的左侧项正确对齐。其余单元格中的文本向左对齐


如何修复此问题,使所有文本都与
中心垂直对齐?

您不需要在cardview中使用GridLayout。在cardview中使用相对布局并对齐TextView和ImageViews如果使用GridLayout,则需要设置rowSpec和columnSpec,并使用setGravity方法在其单元格组中指定子对象的对齐方式。请在此处阅读更多信息: