ビュー(LinearLayout
など)をクリックしたときに、波紋効果として常にandroid:background="?selectableItemBackground"
を使用していました。私はこれがAPI 14と下位互換性があると読んでいると思います。白い背景色のselectableItemBackgroundの使用
しかし、私はこの波紋効果を白い背景で使用する必要があることを発見しました。具体的には、既定の色の背景(私はTheme.AppCompat.Light.NoActionBar
から拡張しています)に表示されるリストアイテムのレイアウトを持っていますので、リストアイテムをこの背景から目立たせるように、リストアイテムを無地の白(#FFFFFF
) 。ここ
リスト項目レイアウトである:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="?selectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content">
...
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingLeft="@dimen/mdu_keyline_1"
android:paddingRight="@dimen/mdu_keyline_1"
android:paddingTop="@dimen/mdu_padding_normal"
android:paddingBottom="@dimen/mdu_padding_normal">
...
</LinearLayout>
</FrameLayout>
上記白色背景なしに波及効果をもたらします。
私がしようとした場合:
<FrameLayout ...
android:background="@color/white">
これは明らかに白の背景を生成しますが、波及効果なし。
また、私は何か他のものを試してみました - これは私が探しています何に最も近い結果を生成した:
<FrameLayout ...
android:background="@color/white">
...
<LinearLayout ...
android:background="?selectableItemBackground">
は、上記の私の波及効果を持つ白の背景を与えました。 しかし、は、アイテムのどの部分をクリックしてもリップルは常に中央から始まるようです。
現在の結果を示すスクリーンショットです(リストアイテムの上部にあるシャドウは無視してください - これは、私が使っているAppBarLayout
とToolbar
の影です)。
どのように私は望ましい効果を達成するだろうか?
これは完璧です!どうもありがとうございます。 –
Hm。なぜ前に前景について聞いたことがないのだろうかと思います。しかし、動作します!ありがとう! – EGHDK