在 Touch 上查看反馈
View feedback onTouch
我希望我的观点能够提供触摸反馈,所以我做到了
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground" />
但是,当我触摸我的观点时,我没有看到任何反馈。
对于我的具体情况,我有一个带有项目的 RecyclerView,我希望每个项目的视图都能提供反馈。因此,在项目的 .xml
中,我将背景设置为 android:background="?attr/selectableItemBackground"
。还有更多吗?
视图必须是可点击的,所以添加 android:clickable="true"。这是在您设置 onClickListener 时自动添加的。
如果这没有帮助,最好分享您的 .xml 资源文件。这取决于必须在其中指定哪种状态。
http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html
根据评论进行编辑:
Api <= 19:
<selector xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:drawable="@color/gray230"
a:state_pressed="true" />
</selector>
Api > 19(触摸反馈仅限于视图范围)
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
a:color="@color/gray230">
<item
a:id="@android:id/mask"
a:drawable="@android:color/black" />
<item>
<selector>
<item
a:drawable="@color/gray230"
a:state_selected="true"/>
</selector>
</item>
</ripple>
Api > 19(无视野限制)
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
a:color="@color/gray230">
</ripple>
这就是我正在使用的。通常我将这些资源文件设置为后台资源。当然,这也可以用代码来完成。
我希望我的观点能够提供触摸反馈,所以我做到了
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground" />
但是,当我触摸我的观点时,我没有看到任何反馈。
对于我的具体情况,我有一个带有项目的 RecyclerView,我希望每个项目的视图都能提供反馈。因此,在项目的 .xml
中,我将背景设置为 android:background="?attr/selectableItemBackground"
。还有更多吗?
视图必须是可点击的,所以添加 android:clickable="true"。这是在您设置 onClickListener 时自动添加的。
如果这没有帮助,最好分享您的 .xml 资源文件。这取决于必须在其中指定哪种状态。 http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html
根据评论进行编辑:
Api <= 19:
<selector xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:drawable="@color/gray230"
a:state_pressed="true" />
</selector>
Api > 19(触摸反馈仅限于视图范围)
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
a:color="@color/gray230">
<item
a:id="@android:id/mask"
a:drawable="@android:color/black" />
<item>
<selector>
<item
a:drawable="@color/gray230"
a:state_selected="true"/>
</selector>
</item>
</ripple>
Api > 19(无视野限制)
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
a:color="@color/gray230">
</ripple>
这就是我正在使用的。通常我将这些资源文件设置为后台资源。当然,这也可以用代码来完成。