在 Gridlayout 内的 MaterialCardView 中找不到属性 layout_columnWeight

Attribute layout_columnWeight not found in MaterialCardView inside Gridlayout

我正在使用 Gradle 中实施的最新网格布局,如下所示:


implementation 'com.google.android.material:material:1.3.0'

下面是我在 GridLayout 中的 MaterialCardView


 <GridLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="3"
            android:columnCount="2"
            android:rowCount="2">

            <com.google.android.material.card.MaterialCardView
                android:id="@+id/mcv_card_1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:clickable="true"
                android:focusable="true"
                android:theme="@style/MaterialTheme"
                app:cardCornerRadius="5dp"
                app:cardElevation="1dp"
                app:cardUseCompatPadding="true"
                app:contentPadding="10dp"
                app:strokeWidth="1dp"
                app:rippleColor="@color/secondaryRippleColor5"
                app:layout_columnWeight="1"
                app:layout_rowWeight="1">

            </com.google.android.material.card.MaterialCardView>
            
        </GridLayout>

我收到以下错误


AAPT: error: attribute layout_columnWeight (aka myapps.ke.playapp:layout_columnWeight) not found.
AAPT: error: attribute layout_layout_rowWeight (aka myapps.ke.playapp:layout_rowWeight) not found.

我已经尝试将 app:layout_columnWeight 更改为 android:layout_columnWeight 并且工作正常但它不向后兼容并且仅支持 Api 21 级及以上

layout_columnWeight 是 android 标准库的一部分,因此您需要将 app:layout_columnWeight 更改为 android:layout_columnWeight

您需要将 android GridLayout 添加到您的依赖项中:

implementation "androidx.gridlayout:gridlayout:1.0.0"

然后在您的 XML 中使用:

<androidx.gridlayout.widget.GridLayout
  ....>

</androidx.gridlayout.widget.GridLayout>

而不是框架一个