【问题标题】:View feedback onTouch查看关于Touch的反馈
【发布时间】:2015-10-20 20:24:36
【问题描述】:

我希望我的观点能够提供有关触摸的反馈,所以我这样做了

<View
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="?attr/selectableItemBackground" />

但是,当我触摸我的视图时,我没有看到任何反馈。

对于我的具体情况,我有一个带有项目的 RecyclerView,我希望每个项目的视图都能提供反馈。所以在项目的.xml 中,我将背景设置为android:background="?attr/selectableItemBackground"。还有更多吗?

【问题讨论】:

  • view.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);
  • @dex 谢谢,我明白我做错了什么。您是否知道如何将暗灰色更改为我选择的东西(在 xml 中)。
  • 您需要编写自己的选择器,然后将其设置为背景。像这样的东西 schemas.android.com/apk/res/android"> 选择器>
  • 我这样做了,并将 clickable 设置为 true,但它不起作用。但这本身似乎是一回事,所以我会在这里提出一个新问题和标签。谢谢。
  • 为了不失礼貌,我重新提问。对不起。 stackoverflow.com/questions/33246793/…

标签: android android-layout touch ripple


【解决方案1】:

视图必须是可点击的,所以添加 android:clickable="true"。这是在您设置 onClickListener 时自动添加的。

如果这没有帮助,最好分享您的 .xml 资源文件。这取决于必须在其中指定什么样的状态。 http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html

基于 cmets 编辑:

API

<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>

这就是我正在使用的。通常我将这些资源文件设置为后台资源。当然,这也可以通过代码来完成。

【讨论】:

  • 谢谢。我在卡上设置背景。谢谢。那么如何将灰色更改为更好的东西,你知道吗?
  • 我写过一次。它在 API
猜你喜欢
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
  • 2011-02-10
  • 2011-02-20
  • 2021-09-20
  • 1970-01-01
相关资源
最近更新 更多