Tampilan Kartu saya di dalam Tampilan Daftar tidak menampilkan bayangan di Android L (Nexus 5). Juga tepi bundar tidak ditampilkan dengan benar. Berikut adalah kode untuk Tampilan Adaptor Listview.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res/com.example.myapp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@android:color/white"
android:foreground="?android:attr/selectableItemBackground"
app:cardCornerRadius="4dp"
app:cardElevation="4dp" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/padding_small"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/ivPicture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvName"
android:layout_centerHorizontal="true"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/tvDetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ivPicture"
android:layout_centerHorizontal="true"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" />
</RelativeLayout>
</android.support.v7.widget.CardView>
Sebenarnya ini berfungsi dengan baik pada perangkat pra-L dengan bayangan yang tepat dan sudut membulat. Tetapi tidak berfungsi pada perangkat Android L. Bisakah Anda memberi tahu apa yang saya lewatkan di sini?
Solusi
Setelah melalui dokumen lagi, saya akhirnya menemukan solusinya.
Cukup tambahkan card_view:cardUseCompatPadding="true"
ke CardView Anda dan bayangan akan muncul di perangkat Lollipop.
Apa yang terjadi adalah, area konten di CardView mengambil ukuran yang berbeda pada perangkat pra-lolipop dan lolipop. Jadi di perangkat lollipop bayangan itu sebenarnya ditutupi oleh kartu sehingga tidak terlihat. Dengan menambahkan atribut ini, area konten tetap sama di semua perangkat dan bayangan menjadi terlihat.
Jadi, seperti ini kodenya.
<android.support.v7.widget.CardView
android:id="@+id/media_card_view"
android:layout_width="match_parent"
android:layout_height="130dp"
card_view:cardBackgroundColor="@android:color/white"
card_view:cardElevation="2dp"
card_view:cardUseCompatPadding="true"
>
...
</android.support.v7.widget.CardView>