如您所见,一张cardview有额外的尺寸。所有其他卡片视图大小相同。我认为这是由于 android:adjustViewBounds =“true”而发生的。如何制作相同尺寸的所有卡片。我将一个对象列表传递给适配器。适配器将传递到Recycler视图。这是屏幕截图
<?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>
答案 0 :(得分:0)
对于不同的屏幕分辨率,您可以使用不同尺寸的静态高度。
答案 1 :(得分:0)
在LinearLayout
中放置您不想要wrap_content的高度<?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>
答案 2 :(得分:0)
将卡片视图的父级从线性布局更改为相对布局解决了问题