为什么在棒棒糖CardViews之间没有空间?
我尝试使用CardView
,它工作在5.0以下,但看起来奇怪的棒棒糖。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="200dp"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="card1" android:textAppearance="?android:attr/textAppearanceLarge" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="200dp"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="card2" android:textAppearance="?android:attr/textAppearanceLarge" /> </android.support.v7.widget.CardView> </LinearLayout>
当我使用RecyclerView
时遇到同样的问题,如果在棒棒糖上运行,我是否需要添加一些东西?
在CardView
上设置:
app:cardUseCompatPadding="true"
从文档:
在API v21 +中添加填充以及与之前的版本具有相同的测量。
在cardview下面使用这两个标签:
app:cardPreventCornerOverlap="false" app:cardUseCompatPadding="true"
第一张图片是卡片视图的预期行为。 当卡抬高时,阴影落在底层上。 在棒棒糖装置中,通过添加填充来实现高度。 所以预棒棒糖设备将在卡片视图周围具有填充。
在L之前,CardView将填充添加到其内容,并为该区域绘制阴影。 此填充量等于顶部和底部的maxCardElevation +(1 – cos45)* cornerRadius和maxCardElevation * 1.5 +(1 – cos45)* cornerRadius。
你必须添加app:cardUseCompatPadding="true"
到你的Cardview
。 但只是增加,可能会给你一个错误。 为了避免这种错误,您还必须将xmlns:app="http://schemas.android.com/apk/res-auto"
到您的CardView
。
例如,
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="wrap_content" android:layout_width="match_parent" app:cardUseCompatPadding="true"> // Other views here </android.support.v7.widget.CardView>
有些会添加card_view:cardUseCompatPadding="true"
和xmlns:card_view="http://schemas.android.com/apk/res-auto"
而不是上面提到的那些。 两种方法都是正确的。
如果你想了解更多有关XML(Android)的应用程序 ,请通过这个答案 :
虽然以前的答案会解决这个问题,但是他们没有解释每个属性的作用。 所以要更有助于回答求职者,
cardPreventCornerOverlap
属性为v20和之前的cardPreventCornerOverlap
添加填充以防止Card内容和圆angular之间的交叉。
cardUseCompatPadding
属性在API v21 +中添加填充以及与先前版本具有相同的测量。