以前可能已经问过这个问题,但我无法找到准确的答案。我已将RecyclerView
小部件作为我的L测试应用程序中的列表实现,并且我想获得'材质效果'当您单击列表中的项目时。我在onClickListener
创建中实施了ViewHolder
并设置了属性
android:background="?android:attr/selectableItemBackground"
作为我的列表项布局的背景(到父级)。
但这一切都没有奏效。当我点击没有发生的项目时#39;。没有效果,全息,材料,没有...请指出我在这里做错了什么......谢谢
答案 0 :(得分: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以上)
答案 1 :(得分:37)
我犯了一个愚蠢的错误而没有把
android:clickable="true"
android:focusable="true"
到我的列表项布局。我认为这不是前L所必需的,但它并不重要,因为在这种情况下这就是问题。
答案 2 :(得分:4)
android:clickable="true"
android:focusable="true"
不再使用这些行。只需添加
android:background="?android:attr/selectableItemBackground"
为点击效果工作。