自定义CardView边框显示两次

时间:2015-04-21 09:48:13

标签: java android android-cardview

我定制了一些像这样的卡片视图:

public class CustomCard extends CardView {

    public CustomCard(Context context) {
        this(context, null);
    }

    public CustomCard(Context context, AttributeSet attributeSet) {
        this(context, attributeSet, 0);
    }

    public CustomCard(Context context, AttributeSet attributeSet, int defStyle) {
        super(context, attributeSet, defStyle);

        //R.layout.card_custom is the custom xml file 
        inflate(context, R.layout.card_custom, this);
    }
}

然后我构建并将它们添加到ViewGroup,如下所示:

CustomCard card = new CustomCard(this);
someLayout.addView(card);

问题是我会在UI中看到两层CardView边框,如下图所示(很明显边框有两层高程):

Problem

有人有想法吗?感谢

编辑:

一个xml的自定义CardView:

<?xml version="1.0" encoding="utf-8"?>
<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_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="14dp"
        android:layout_marginBottom="14dp">

        <!--- Some Details --->

    </RelativeLayout>

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

我上面提到的一些布局:

<ScrollView 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="@color/background_gray">

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

        <!--- Details --->

    </LinearLayout>

</ScrollView>

1 个答案:

答案 0 :(得分:1)

您的自定义卡片视图中的CardView似乎正在膨胀,这会导致此问题。

要解决此问题,请将layout/custom_card.xml更改为RelativeLayout作为父级,而不是CardView