J'ai toujours été à l'aide d' android:background="?selectableItemBackground"
pour un effet d'entraînement lorsqu'une vue (un LinearLayout
par exemple) est cliqué. Je pense que j'ai lu quelque part que c'est rétro-compatible avec les API 14.
Cependant, j'ai trouvé que j'ai besoin d'utiliser cet effet d'entraînement, mais avec un arrière-plan blanc. Plus précisément, j'ai une mise en page pour un élément de la liste qui sera affichée sur la valeur par défaut de la couleur d'arrière-plan (je suis étendant à partir de Theme.AppCompat.Light.NoActionBar
), alors je veux l'élément de la liste de se démarquer de ce qui précède, par la coloration de l'élément de la liste blanche,#FFFFFF
).
Ici est la liste de page de l'élément:
<?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>
Ci-dessus, produit de l'effet d'entraînement sans le fond blanc.
Si j'essaie:
<FrameLayout ...
android:background="@color/white">
De toute évidence, cela produit un fond blanc, mais sans l'effet d'entraînement.
J'ai aussi essayé quelque chose d'autre, et cela a produit un résultat plus proche de ce que je suis à la recherche de:
<FrameLayout ...
android:background="@color/white">
...
<LinearLayout ...
android:background="?selectableItemBackground">
Le ci-dessus m'a donné le fond blanc, avec un effet d'entraînement. Cependant, l'ondulation semble toujours commencer par le centre, peu importe de quelle partie de l'article que je cliquez.
Voici quelques captures d'écran montrant le résultat courant (ignorer l'ombre en haut de la liste des éléments - c'est l'ombre de l' AppBarLayout
et Toolbar
j'utilise).
Comment pourrais-je obtenir l'effet désiré?