我有一个包含物品的RecyclerView。当我在Lollipop设备上运行时,一切都很棒。但是当我在棒棒糖前设备上运行时,每个视图周围都有一个白色边框。
编辑:我之前没有发布代码,因为我认为这是一种错误。
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>
答案 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
- 您必须在那里进行更改。