【问题标题】:CardView column and row weightCardView 列和行权重
【发布时间】:2020-07-12 23:48:29
【问题描述】:

我想创建一个包含cardViewGridLayout 我将cardView 的高度和宽度设置为0dp,并将layout_rowWeightlayout_columnWeight 改为1,但它不起作用,除非我给cardView 一个固定的高度和宽度, 我也希望它可以滚动。 这是XML 代码

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:alignmentMode="alignMargins"
            android:columnCount="2"
            android:padding="16dp"
            android:rowCount="3">

            <androidx.cardview.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:cardCornerRadius="5dp"
                app:cardElevation="5dp"
                app:layout_columnWeight="1"
                app:layout_rowWeight="1">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:layout_margin="16dp"
                    android:orientation="vertical">

                    <ImageView
                        android:layout_width="60dp"
                        android:layout_height="60dp"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/ic_android_black_24dp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Orthopedics"
                        android:textAlignment="center"
                        android:textSize="18sp"
                        android:textStyle="bold" />

                </LinearLayout>

            </androidx.cardview.widget.CardView>

            <androidx.cardview.widget.CardView
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:cardCornerRadius="5dp"
                app:cardElevation="5dp"
                app:layout_columnWeight="1"
                app:layout_rowWeight="1">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:layout_margin="16dp"
                    android:orientation="vertical">

                    <ImageView
                        android:layout_width="60dp"
                        android:layout_height="60dp"
                        android:layout_gravity="center_horizontal"
                        android:src="@drawable/ic_android_black_24dp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Orthopedics"
                        android:textAlignment="center"
                        android:textSize="18sp"
                        android:textStyle="bold" />
                </LinearLayout>
            </androidx.cardview.widget.CardView>
        </GridLayout>
    </LinearLayout>
</ScrollView>

【问题讨论】:

    标签: android android-cardview android-gridlayout


    【解决方案1】:

    用这个替换你的代码。

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <GridLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:alignmentMode="alignMargins"
                android:columnCount="2"
                android:padding="16dp"
                android:rowCount="3">
    
                <androidx.cardview.widget.CardView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_rowWeight="1"
                    android:layout_columnWeight="1"
                    android:clipToPadding="false"
                    app:cardCornerRadius="5dp"
                    app:cardElevation="5dp"
                    app:layout_columnWeight="1"
                    app:layout_rowWeight="1">
    
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_margin="16dp"
                        android:orientation="vertical">
    
                        <ImageView
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:layout_gravity="center_horizontal"
                            android:src="@drawable/ic_rewards_on" />
    
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Orthopedics"
                            android:textAlignment="center"
                            android:textSize="18sp"
                            android:textStyle="bold" />
    
                    </LinearLayout>
    
                </androidx.cardview.widget.CardView>
    
                <androidx.cardview.widget.CardView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_rowWeight="1"
                    android:layout_columnWeight="1"
                    android:clipToPadding="false"
                    app:cardCornerRadius="5dp"
                    app:cardElevation="5dp"
                    app:layout_columnWeight="1"
                    app:layout_rowWeight="1">
    
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_margin="16dp"
                        android:orientation="vertical">
    
                        <ImageView
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:layout_gravity="center_horizontal"
                            android:src="@drawable/ic_rewards_on" />
    
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Orthopedics"
                            android:textAlignment="center"
                            android:textSize="18sp"
                            android:textStyle="bold" />
                    </LinearLayout>
                </androidx.cardview.widget.CardView>
            </GridLayout>
        </LinearLayout>
    </ScrollView>
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2018-02-26
      • 2019-02-08
      相关资源
      最近更新 更多