100

私が理解していることから、プレビュー段階の初期にはCardView、Java でハックせずに s でのみ XML で昇格を設定する方法がないように見えました。公式リリースが公開されたので、昇格を設定する Java コードを書かずに XML でこれを行う方法はありますか?

私はcard_view:cardElevation何の効果もありませんでした。5.0 用のエミュレーターを使用していたときは、すべて問題ないと思っていました。でも今は実機で公式版を使っていると全部CardView消えてしまいました

Lollipop以前は、うまく機能します。

ここに私の完全なxmlがあります

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:id="@+id/cv1"
    card_view:cardElevation="4dp"
    android:layout_margin="6dp"
    card_view:cardCornerRadius="3dp"
    android:layout_height="match_parent">
4

6 に答える 6

322

マージン/パディングの問題のようです。cardUseCompatPadding属性を true に設定してみてください。例えば:

<android.support.v7.widget.CardView 
    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="match_parent"
    android:layout_margin="6dp"
    card_view:cardUseCompatPadding="true"
    card_view:cardElevation="4dp"
    card_view:cardCornerRadius="3dp">

Android doc からの説明:

CardView は、L の前のプラットフォームで影を描画するために追加のパディングを追加します。

これにより、カードのサイズが L と L の前で異なる場合があります。CardView を他のビューと揃える必要がある場合は、変更を考慮して API バージョン固有のディメンション リソースが必要になる場合があります。別の方法として、cardUseCompatPadding フラグを true に設定すると、CardView はプラットフォーム L 以降で同じパディング値を追加します。

cardUseCompatPadding フラグを true に設定すると、UI に不要なギャップが追加されるため、デフォルト値は false です。

于 2014-11-25T09:55:50.030 に答える
17

cardElevation属性を使用する必要があります。
Androidx ライブラリ:

MaterialCard公式のMaterial Components ライブラリに含まれている を使用できます。

implementation 'com.google.android.material:material:1.x.x'

そしてあなたのレイアウトで:

    <com.google.android.material.card.MaterialCardView
        app:cardElevation="xxdp"
        app:cardUseCompatPadding="true"
        ..>

またはCardViewandroidx パッケージ内:

implementation 'androidx.cardview:cardview:1.x.x'

そしてあなたのレイアウトで:

     <androidx.cardview.widget.CardView
        app:cardElevation="xxdp"
        app:cardUseCompatPadding="true"
        ..>

古いサポート ライブラリ:

<android.support.v7.widget.CardView
    app:cardElevation="xxdp" 
    app:cardUseCompatPadding="true"
    ..>
于 2014-11-19T13:54:05.937 に答える
13

この線があれば

android:hardwareAccelerated="false"

マニフェスト アプリケーション タグで、影が表示されませんでした。この行を削除してみてください

または使用

android:hardwareAccelerated="true"

これは私のために働いた!私はそれがあなたにとってもうまくいくことを願っています:)

于 2017-04-09T11:26:39.620 に答える