2015-04-21 65 views
1

我定做一些cardviews這樣的:定製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); 

問題是我會看到CardView的兩層(很明顯在邊界有兩層海拔):

Problem

任何人有想法?由於

編輯:

定製CardView的

一個XML:

<?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> 
+0

您可以發佈card_custom的XML和任何someLayout是什麼? 我想如果你插入別的東西(比如空的視圖)到someLayout,你沒有得到一個邊框。 – bryan

回答

1

看起來會人爲增加一個CardView您的自定義卡片視圖中,這是造成這個問題。

爲了解決這個問題,改變你的layout/custom_card.xmlRelativeLayout作爲父母,而不是CardView

+0

是的,這是真的。謝謝。 – GilbertLee

+0

那麼,那麼如何將'CardView'作爲'CustomControl'呢?因爲它現在是'RelativeLayout'而不是'CardView',所以我們不能使用'cardCornerRadius'之類的東西? (我面臨同樣的問題) –