私が理解していることから、プレビュー段階の初期には、JavaのハックなしでCardView
sのみにXMLの昇格を設定する方法はないように思われました。公式リリースが公開されたので、Javaコードを記述せずにXMLでこれを行う方法はありますか?
card_view:cardElevation
を試しましたが効果はありません。 5.0のエミュレータを使用していたとき、すべてがうまくいくと思っていました。しかし、実際のデバイスで公式バージョンを使用しているので、CardView
sがすべて消えました
事前ロリポップ、それは素晴らしい作品です。
これが私の完全な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">
マージン/パディングの問題のように見えます。 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です。
cardElevation 属性を使用する必要があります
<Android.support.v7.widget.CardView
xmlns:card_view="http://schemas.Android.com/apk/res-auto"
card_view:cardElevation="4dp" />
この行がある場合
Android:hardwareAccelerated="false"
マニフェストアプリケーションタグでは、影は表示されませんでした。この行を削除してみてください
または使用する
Android:hardwareAccelerated="true"
これは私のために働いた!私もそれがあなたのために働くことを願っています:)
追加することで解決しました
xmlns:card_view = "http://schemas.Android.com/apk/res-auto"
例えば:
<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="wrap_content"
Android:layout_marginTop="5dp"
Android:layout_marginLeft="5dp"
Android:layout_marginRight="5dp"
card_view:cardCornerRadius="5dp">
カードビューにapp:cardElevation = "8dp"属性を追加しているので、次のようになります。
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="160dp"
Android:layout_marginStart="16dp"
Android:layout_marginLeft="16dp"
Android:layout_marginTop="24dp"
Android:layout_marginEnd="16dp"
Android:layout_marginRight="16dp"
app:cardElevation="8dp"
app:cardCornerRadius="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView">
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:scaleType="centerCrop"
Android:src="@drawable/kmp_warna1" />
</Android.support.v7.widget.CardView>
それが役立つことを願っています