代码之家  ›  专栏  ›  技术社区  ›  Prashant Yadav

一个具有额外尺寸的cardview

  •  0
  • Prashant Yadav  · 技术社区  · 7 年前

    正如您所看到的,一个cardview具有额外的大小。所有其他CardView的大小都相同。我认为这是由于 android:adjustViewBounds=“true” . 如何制作相同大小的所有卡片。我正在将对象列表传递给适配器。适配器正在传递到回收器视图。这是截图 enter image description here

    <?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:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <android.support.v7.widget.CardView
            android:id="@+id/cardView_faq"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:cardUseCompatPadding="true"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="-2dp">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="start"
                android:gravity="center"
                android:orientation="horizontal"
                android:weightSum="5">
    
                <ImageView
                    android:id="@+id/imgView_icon"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="4"
                    android:paddingLeft="16dp"
                    android:paddingStart="16dp"
                    android:paddingTop="16dp"
                    android:paddingBottom="16dp"
                    android:adjustViewBounds="true"
                    android:scaleType="centerCrop"
                    android:text="ImageViewIcon" />
    
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="start"
                    android:gravity="center"
                    android:orientation="vertical"
                    android:layout_weight="1">
    
                    <TextView
                        android:id="@+id/tv_title"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="start"
                        android:paddingTop="24sp"
                        android:paddingBottom="16sp"
                        android:paddingLeft="16dp"
                        android:paddingRight="16dp"
                        android:text="tv_title"
                        android:textSize="24sp" />
    
                    <TextView
                        android:id="@+id/tv_sub_title"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="start"
                        android:paddingLeft="16dp"
                        android:paddingRight="16dp"
                        android:paddingBottom="16sp"
                        android:text="tv_text_other_lang"
                        android:textSize="14sp" />
                </LinearLayout>
            </LinearLayout>
    
        </android.support.v7.widget.CardView>
    </LinearLayout>
    
    3 回复  |  直到 7 年前
        1
  •  0
  •   BekaKK    7 年前

    对于不同的屏幕分辨率,可以使用不同尺寸的静态高度。

        2
  •  0
  •   Addell El-haddad    7 年前

    将不希望在LinearLayout中包装内容的高度

    <?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:orientation="vertical" android:layout_width="match_parent" android:layout_height="150dp"> <android.support.v7.widget.CardView android:id="@+id/cardView_faq" android:layout_width="match_parent" android:layout_height="wrap_content" app:cardUseCompatPadding="true" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="5dp" android:layout_marginBottom="-2dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/imgView_icon" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:paddingLeft="16dp" android:paddingStart="16dp" android:paddingTop="16dp" android:paddingBottom="16dp" android:adjustViewBounds="true" android:scaleType="centerCrop" android:text="ImageViewIcon" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="start" android:gravity="center" android:orientation="vertical" android:layout_weight="2"> // adjust to have better space for your textview. <TextView android:id="@+id/tv_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="start" android:paddingTop="24sp" android:paddingBottom="16sp" android:paddingLeft="16dp" android:paddingRight="16dp" android:text="tv_title" android:textSize="24sp" /> <TextView android:id="@+id/tv_sub_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="start" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingBottom="16sp" android:text="tv_text_other_lang" android:textSize="14sp" /> </LinearLayout> </LinearLayout> </android.support.v7.widget.CardView> </LinearLayout>
    
        3
  •  0
  •   Prashant Yadav    7 年前

    将卡片视图的父级从线性布局更改为相对布局解决了此问题