32

Android アプリで cardview を使用しています。ただし、影は表示されません。これがxmlレイアウトです

デフォルトのオプションメニューの影も表示されません。

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ECEDF0"
    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"
        android:layout_gravity="center"
        android:clipChildren="false"
        card_view:cardBackgroundColor="@color/white"
        card_view:cardCornerRadius="4dp"
        card_view:cardElevation="14dp"
        card_view:cardUseCompatPadding="true" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:text="Google Play" />
    </android.support.v7.widget.CardView>

</LinearLayout>

添付参照

4

6 に答える 6

91

ドキュメントをもう一度調べた後、最終的に解決策を見つけました。

追加card_view:cardUseCompatPadding="true"するだけCardViewで、Lollipop デバイスに影が表示されます。

CardViewロリポップ以前のデバイスとロリポップ デバイスでは、コンテンツ領域のサイズが異なります。そのため、ロリポップ デバイスでは、影は実際にはカードで覆われているため、表示されません。この属性を追加すると、コンテンツ領域はすべてのデバイスで同じままになり、影が見えるようになります。

私のxmlコードは次のようなものです:

<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="2sp"
    card_view:cardUseCompatPadding="true"
    >
...
</android.support.v7.widget.CardView>
于 2015-01-12T11:04:21.883 に答える
16

前述のように、Android L で CardView がシャドウを 表示しない を使用してビューを描画していることを確認してくださいhardwareAccelerated = true

hardwareAccelerated = true ここに画像の説明を入力

hardwareAccelerated = false ハードウェア アクセラレーテッド CardView

詳細については、 Android ハードウェア アクセラレーションを参照してください。

于 2016-03-12T20:11:31.427 に答える
5

Lollipop 以上の場合、カードに余白を追加する必要があります。

<android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            />

影は実際の視界の外にあるので

于 2016-08-24T12:55:48.353 に答える