RecyclerView + CardView +触摸反馈

Raf*_*nto 23 android touch android-cardview android-5.0-lollipop android-recyclerview

当有人在RecyclerView内部时,有没有人解决了CardView之谜而没有触摸反馈?

我有一个带有一堆CardViews(一个CardList)的RecyclerView.当我点击任何CardView时,我启动另一个Activity.这工作得很好,但是当我点击CardView时,我看不到任何触摸反馈.

及时,我已经使用以下方法配置了我的CardView(XML):

android:clickable="true"
android:background="?android:selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)

谢谢!

Eug*_*nec 39

背景:

CardView忽略android:background赞成app:cardBackground这只能是颜色.边框和阴影实际上是背景的一部分,因此您无法设置自己的边框和阴影.

解:

CardView可点击内部进行布局而不是卡本身.您已经编写了此布局所需的两个属性:

android:clickable="true"
android:background="?android:selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)

  • `android:foreground ="?android:selectableItemBackground"```CardView`对我来说是一个更清洁的解决方案,因为使`CardView`里面的布局可点击是禁用我的项目点击监听器 (6认同)

Dav*_*uel 7

解决方案1

正如@Eugen建议的那样,你可以使布局内部CardView可点击,这样你就可以使用android:background:

<android.support.v7.widget.CardView
    ...
    android:clickable="true"
    android:background="?attr/selectableItemBackground">
Run Code Online (Sandbox Code Playgroud)

解决方案2

如果您不希望通过使布局内部CardView可点击而丢失项目单击侦听器,则可以使用android:foreground:

<android.support.v7.widget.CardView
    ...
    android:clickable="true"
    android:foreground="?attr/selectableItemBackground">
Run Code Online (Sandbox Code Playgroud)

额外:如果您不想要矩形蒙版,可以使用"?attr/selectableItemBackgroundBorderless"而不是"?attr/selectableItemBackground".