我正在使用Pre-LolliPop Android手机进行开发,现在我有一个RecyclerView,其中包含带有图像和文本的CardView布局。我尝试修剪小部件默认的所有边距,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:padding="0dp"
android:layout_margin="0dp" >
<android.support.v7.widget.CardView
android:layout_width="@dimen/adapter_itemlist_category_cardview_width"
android:layout_height="@dimen/adapter_itemlist_category_cardview_height"
android:id="@+id/adapter_itemlist_category_cardview"
android:padding="0dp"
android:background="@android:color/transparent"
card_view:cardElevation="0dp"
card_view:cardMaxElevation="0dp"
card_view:cardUseCompatPadding="true"
>
<!-- some inner content-->
</android.support.v7.widget.CardView>
</LinearLayout>
在android:background="@android:color/black"
中设置LinearLayout
是为了直观地查看是否还有空格/边距。
然而,即使当我同时设置card_view:cardElevation =“0dp”和card_view:cardMaxElevation =“0dp”,仍有像CardViews项目之间的RecyclerView内几DP浅灰缘,显然是由于圆角落(我不希望它成为圆角):
然后我尝试将圆角半径设置为0 dp,但我发现如果设置card_view:cardCornerRadius="0dp"
,它将在执行期间变为以下错误:
07-30 00:49:49.219: E/AndroidRuntime(16237): FATAL EXCEPTION: main
07-30 00:49:49.219: E/AndroidRuntime(16237): java.lang.IllegalArgumentException: radius must be > 0
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.graphics.RadialGradient.<init>(RadialGradient.java:34)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.support.v7.widget.RoundRectDrawableWithShadow.buildShadowCorners(RoundRectDrawableWithShadow.java:285)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.support.v7.widget.RoundRectDrawableWithShadow.buildComponents(RoundRectDrawableWithShadow.java:307)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.support.v7.widget.RoundRectDrawableWithShadow.draw(RoundRectDrawableWithShadow.java:209)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13744)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.widget.FrameLayout.draw(FrameLayout.java:467)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12710)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13483)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.drawChild(ViewGroup.java:3169)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3039)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13762)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12710)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13483)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.drawChild(ViewGroup.java:3169)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.support.v7.widget.RecyclerView.drawChild(RecyclerView.java:3558)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3039)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13762)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:3037)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12710)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13483)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.drawChild(ViewGroup.java:3169)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3039)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13762)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12710)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13483)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.drawChild(ViewGroup.java:3169)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3039)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12708)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13483)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.drawChild(ViewGroup.java:3169)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3039)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13762)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.widget.FrameLayout.draw(FrameLayout.java:467)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.widget.ScrollView.draw(ScrollView.java:1806)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12710)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.draw(View.java:13483)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.drawChild(ViewGroup.java:3169)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3039)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12708)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12646)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12646)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12646)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12646)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12646)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12646)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12646)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.View.getDisplayList(View.java:12754)
07-30 00:49:49.219: E/AndroidRuntime(16237): at android.view.ViewGroup.dispatchGetDisplayList(ViewGrou
结果是这个属性不能设置为零值。
因此,有没有办法在Lollipop前设备中完全删除CardView的圆角?如果连边缘/填充物都是由它制成的?如果没有,如何完全删除它们?
答案 0 :(得分:0)
我切换到非cardview,它对我有用。