RecyclerView周围的白色边框

时间:2015-04-15 12:52:20

标签: android image android-recyclerview

我有一个包含物品的RecyclerView。当我在Lollipop设备上运行时,一切都很棒。但是当我在棒棒糖前设备上运行时,每个视图周围都有一个白色边框。

White small border around pre-lollipop recyclerview

编辑:我之前没有发布代码,因为我认为这是一种错误。

Rec.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"      
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#333333"
tools:context=".MainActivity">

<android.support.v7.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/text"
    android:scrollbars="vertical" />

</RelativeLayout>

main_card_view.xml

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

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#222222"
    >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:id="@+id/image"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:src="@drawable/ic_launcher" />
    <RelativeLayout
        android:layout_width="320dp"
        android:layout_height="240dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignBottom="@+id/image"
        android:background="#bb000000"
        android:id="@+id/rel_color">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Μπύρα"
            android:textColor="#fcfcfc"
            android:textSize="40sp"
            android:shadowDx="1"
            android:shadowDy="1"
            android:shadowColor="#000000"
            android:id="@+id/text"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true"
            android:gravity="center" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="8$"
            android:id="@+id/textView3"
            android:textColor="#fcfcfc"
            android:layout_alignParentBottom="true"
            android:textSize="28sp"
            android:shadowDx="1"
            android:shadowDy="1"
            android:shadowColor="#000000"
            android:layout_alignBottom="@+id/text"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_margin="10dp" />
    </RelativeLayout>

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

1 个答案:

答案 0 :(得分:1)

  

问题在于CardView。

在您的CardView上设置setPreventCornerOverlap(false)

并扩展ImageView以创建一个类似RoundedCornerImageView的自定义类,并在ImageView内部的CardView中使用它。

Answer on this question will be helpful.

注意:您可以创建自己的自定义类,即RoundedCornerIm ...或使用类似于链接的SO问题的库,即here on github

编辑:

好吧,我觉得你有点困惑,

1)RecyclerView是列表/网格的容器布局。即

android:id="@+id/my_recycler_view"

我可以在照片中使用GridLayoutManager附加RecyclerView。同样,要将数据放入RecyclerView,您也必须附加adapter

再次,如果您有一个适配器,即扩展Adapter类的类(可能是RecyclerView.Adapter)。现在必须为适配器类提供一个布局,以main_card_view.xml格式化网格样式中的RecyclerView内部GridLayoutManager

因此,RecyclerView中的每个项目都是main_card_view.xml

现在,在扩展适配器类的类中(即附加到回收站视图),将会有 CardView - 您必须在那里进行更改。