使用RecyclerView中的ImageView的CardView无法填充屏幕

时间:2016-05-03 09:33:53

标签: android android-layout android-recyclerview material-design android-cardview

我在CardView中使用ImageView RecyclerView。以下是xml代码。

列出项目(CardView)xml:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:elevation="20dp"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

<ImageView
      android:id="@+id/feed_cradImage"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:src="@drawable/mysteps1"/>    
</android.support.v7.widget.CardView> 

RecyclerView

中使用它
<android.support.v7.widget.RecyclerView
            android:id="@+id/home_recyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </android.support.v7.widget.RecyclerView>

但我面临一些问题:

1 =&gt;。我已将layout_width设置为match_parentCardView的“ImageView”。但是,CardView仍未填满整个屏幕,并在右侧显示边距。

enter image description here

2 =&GT;如果图像尺寸的宽度较小,则CardView会根据图像尺寸缩小。我希望卡片不会缩小,即使它是空白的或者其中有小图像。

enter image description here

注意:我使用Picasso从服务器获取图像。

3 个答案:

答案 0 :(得分:2)

将此添加到您的ImageView

android:adjustViewBounds="true"
android:scaleType="centerCrop"

答案 1 :(得分:0)

在我看来,ImageView正确填充了CardView,但图像并没有正确填充ImageView。您可以尝试通过为两个元素设置背景颜色来确定这一点,并查看显示的背景。

要解决此问题,请尝试以下操作:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:elevation="20dp"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

<ImageView
      android:id="@+id/feed_cradImage"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:src="@drawable/mysteps1"
      android:adjustViewBounds="true"
      android:scaleType="centerCrop"/>    
</android.support.v7.widget.CardView> 

答案 2 :(得分:0)

降低一些提升并检查结果是否有帮助

app:elevation="4dp"