Lollipop以前のデバイスでView
にラッピングせずにCardView
に標高を追加する方法はありますか?
ViewCompat.setElevation(View, int)
は現在、シムを作成しません。
現在、高度をシミュレートする唯一の方法は、v21より前のシャドウを適用することです。 values
でスタイル/レイアウト/ドローアブルを定義し、values-v21
でオーバーライドします。ボタンにはスタイルのオーバーライドを使用します。レイアウトの場合、通常、参照オーバーライドを使用します(ドロアブルを削除するには@null
を使用します)。
将来的には、サポートライブラリの更新によりシムが追加されることを願っています。
このredditスレッド は、上記の更新を追跡します。
新しい サポートデザインライブラリ は、実際にはフローティングアクションボタンのシムを作成します。
これは、Lollipop以前のデバイスでToolbar
の下に影を追加する方法の例です。
レイアウトは次のようになります。
<RelativeLayout
Android:id="@+id/toolbar_container"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true" >
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:animateLayoutChanges="true"
Android:background="?attr/colorPrimary"
Android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
<View
Android:id="@+id/toolbar_shadow"
Android:layout_width="match_parent"
Android:layout_height="@dimen/toolbar_shadow"
Android:layout_below="@id/toolbar"
Android:background="@drawable/toolbar_dropshadow" />
</RelativeLayout>
そして影は:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >
<gradient
Android:angle="90"
Android:endColor="#88444444"
Android:startColor="@Android:color/transparent" />
</shape>
を使用して同じ効果を達成します、
Android:background="@Android:drawable/dialog_holo_light_frame"
テスト済みの出力:
リファレンス- https://stackoverflow.com/a/25683148/3879847
更新:このドロアブルの色を変更したい場合は、@ Irfan answerを試してください