?selectableItemBackground 只工作一次..?

?selectableItemBackground works only once..?

所以我在生产中遇到了一个 Android 项目的问题。

这个问题在过去几个月一直存在,跨越了许多 appcompat 和 gradle 版本,我没有发现任何其他人在任何地方谈论这个问题。

故事时间:

我在整个应用程序的不同位置设置了“?selectableItemBackground”。 (当然是作为背景)

我遇到的问题是涟漪效应仅在每个 activity 触发一次,但仅当 view/button 启动另一个 activity.

示例:

  1. 单击打开 AlertDialog 的按钮或在 "Activity A" 中执行某些操作(波纹有效)

  2. 单击同一个按钮或另一个按钮,一切正常(波纹有效)

  3. 点击一个按钮打开一个新的 activity (Activity B)(波纹仍然有效)

  4. 关闭"Activity B"

  5. 所有 Ripple 效果在 "Activity A"

  6. 后停止工作

任何想法将不胜感激:)

确保这些在布局中

        android:clickable="true"

        android:foreground="?selectableItemBackground"

添加以下代码

android:background="?attr/selectableItemBackground"
android:clickable="true"

显然我们在每次调用 onStop() 时清除所有视图的背景,所以当您返回时 - none 的可点击背景将被附加。