在recyclerview中,cardviews之间存在太大的差距

时间:2016-03-12 07:37:26

标签: android android-recyclerview android-cardview

我在 RelativeLayout 中有 RecyclerView ,如下所示:

<android.support.v7.widget.RecyclerView
    android:id="@+id/cards_wrapper"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    android:background="#eeff99"/>

我在 LinearLayout 中有卡片视图,如下所示:

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/quote_card"
    android:layout_height="200dp"
    android:layout_width="match_parent"
    card_view:cardBackgroundColor="#666"
    card_view:cardCornerRadius="5dp"
    card_view:cardElevation="5dp"
    app:cardUseCompatPadding="true"
    >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/display_author_name"
        android:text="Author Name"
        android:textSize="18sp"
        android:textColor="#333"
        android:gravity="center_horizontal"/>

</android.support.v7.widget.CardView>
卡片之间的差距很大。只有一次滚动后才能看到下一张卡片。我错过了什么?

滚动前的图像:

before scrolling

滚动后

after scrolling

4 个答案:

答案 0 :(得分:3)

试试这个:

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

   <android.support.v7.widget.CardView
      xmlns:card_view="http://schemas.android.com/apk/res-auto"
      android:id="@+id/quote_card"
      android:layout_height="200dp"
      android:layout_width="match_parent"
      card_view:cardBackgroundColor="#666"
      card_view:cardCornerRadius="5dp"
      card_view:cardElevation="5dp"
      app:cardUseCompatPadding="true">

      <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/display_author_name"
          android:text="Author Name"
          android:textSize="18sp"
          android:textColor="#333"
          android:gravity="center_horizontal"/>

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

</LinearLayout>

答案 1 :(得分:0)

将卡片视图放在一个线性布局旁边,并用填充来改变间隙

<LinearLayout 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="wrap_content"
*android:padding="1dp"*

>

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    style="@style/list_card"
    android:layout_width="match_parent"
    android:layout_height="90dp" >

答案 2 :(得分:0)

在您的LinearLayout中进行这些更改。如果layout_heightmatch_parent,则会占用屏幕空间

android:layout_width="match_parent"
android:layout_height="wrap_content"

答案 3 :(得分:-1)

您使用卡片视图高度作为匹配父对象,因此,如果父母高度也与父对象匹配,则将父视图的高度更改为包装内容;如果您仅使用卡片视图作为父对象,则还将其视图高度更改为包装内容。.可能对您有所帮助< / p>