2014-11-20 1 views
3

나는 android CardView을 사용하고 있으며 Api 21 아래에서 완벽하게 작동합니다. 그러나 Api 21 즉 Lollipop에서 cardElevation과 같은 xml 속성을 사용하면 cornerRadius이 작동하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?Android CardView가 Api 21에서 작동하지 않습니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <!-- A CardView that contains a TextView --> 
    <android.support.v7.widget.CardView 
     android:id="@+id/card_view" 
     android:layout_gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     card_view:cardElevation="2dp" 
     card_view:cardBackgroundColor="@color/white" 
     card_view:cardCornerRadius="4dp"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:paddingTop="6dp" 
      android:paddingBottom="8dp" 
      android:paddingLeft="8dp" 
      android:paddingRight="8dp" 
      android:background="@color/white" 
      android:layout_gravity="center_vertical" 
      android:gravity="center_vertical" 
      android:layout_alignBottom="@+id/live_image"> 

      <TextView 
       android:id="@+id/title_update" 
       android:text="@string/msg_error" 
       android:layout_width="match_parent" 
       android:singleLine="true" 
       android:ellipsize="end" 
       android:textSize="18sp" 
       android:background="@color/white" 
       android:textColor="@color/black" 
       android:layout_height="wrap_content" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="horizontal"> 

       <TextView 
        android:id="@+id/textView_time" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:text="@string/msg_error" 
        android:layout_weight="0.75" 
        android:singleLine="true" 
        android:ellipsize="end" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:textColor="@color/black_translucent" /> 

       <TextView 
        android:id="@+id/textViewAlarm" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.25" 
        android:visibility="gone" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:textColor="@color/black" 
        android:textStyle="italic" /> 
      </LinearLayout> 
     </LinearLayout> 

    </android.support.v7.widget.CardView> 
</LinearLayout> 
+1

당신이 card_view'사용하려고 했나 사용하여 CardView

card_view:cardUseCompatPadding="true" 

에 다음 행을 추가하려고 : cardUseCompatPadding이 = "진정한 "'? – Floern

+0

@Floern Thanks. 그것은 내 문제를 해결했다. – Naddy

답변

0

내가 같은 동작 건너 온 :

이 내 XML 레이아웃입니다. 나는 그 그림자가 내용 바깥에 그려져 있다고 생각한다. 따라서 뷰의 내용과 경계 사이의 공간이 필요합니다. 내가 CardView와 정확히 같은 문제가 있었다 당신의 CardView

<android.support.v7.widget.CardView 
    android:id="@+id/card_view" 
    android:layout_margin="15dp" 
    ... > 

    ... 

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

추가 마진을 다음과 같이 나는 그것을 해결했습니다. compatPadding에서 true으로 설정하면 문제가 해결됩니다. 레이아웃에서

당신이 코드에서 초기화하는 경우 또는

cardView.setUseCompatPadding(true);