24

可能这个问题以前有人问过,但我找不到准确的答案。我已经RecyclerView在我的 L 测试应用程序中将小部件实现为列表,当您单击列表中的项目时,我想获得“材料效果”。onClickListener我在我的ViewHolder创作中实现了一个并设置了属性

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

作为我的列表项布局的背景(对父级)。

但这一切都没有奏效。当我单击项目时,什么都没有发生。没有效果,holo,material,none...如果我在这里做错了请指出... Thx

4

3 回答 3

41

桑德拉的回答对我不起作用。我的列表项布局中还需要一个属性:

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

注意:如果在最后一行粘贴时出现错误,则您的 android 应用设置为 10 或更低版本。只需右键单击 Android Studio 中的错误并设置它,以便它也会创建您的布局的 v11 版本。然后,在原始布局中,确保删除

android:background="?android:attr/selectableItemBackground"`

这是因为 v10 或更低版本的 android 不支持动画。设置好这两个布局文件后,动画将在 v11+ 版本的 Android 中正确显示,当然它不会在较低版本中显示。

(或者只是将应用的 minSdkVersion 版本增加到 10 以上)

于 2015-09-13T17:50:11.933 回答
37

我犯了一个愚蠢的错误,并没有把

android:clickable="true"
android:focusable="true"

到我的列表项布局。我认为这在 L 之前不是必需的,但这没关系,因为这就是这种情况下的问题。

于 2014-07-29T08:42:20.380 回答
4
android:clickable="true"
android:focusable="true"

这些行不再使用。只是添加

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

为点击效果工作。

于 2017-01-18T08:37:32.183 回答