首页 > 解决方案 > GridView 不尊重 columnCount

问题描述

我在下面有一些代码用于在 GridView 中呈现列表:

水平活动.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimaryDark"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <GridView
        android:id="@+id/levelGridView"
        android:columnCount="3"
        android:alignmentMode="alignMargins"
        android:columnOrderPreserved="false"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

级别项目.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/levelItem"
    android:layout_gravity="center"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.cardview.widget.CardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:onClick="startGame"
        android:tag="1"
        app:cardElevation="6dp"
        app:cardCornerRadius="12dp"
        android:layout_margin="12dp">
        
        <LinearLayout
            android:orientation="vertical"
            android:padding="16dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            
            <TextView
                android:id="@+id/level_id"
                android:gravity="center"
                android:textColor="#6F6F6F"
                android:textSize="18sp"
                android:text="Level 1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
                
        </LinearLayout>
    </androidx.cardview.widget.CardView>
</LinearLayout>

呈现如下:

在此处输入图像描述

我很困惑,因为我希望有 3 列具有该android:columnCount="3"属性,但只有一列。

标签: androidgridviewandroid-gridviewcardview

解决方案


推荐阅读