代码之家  ›  专栏  ›  技术社区  ›  Carl Manaster

Android中避免突出显示flash

  •  0
  • Carl Manaster  · 技术社区  · 14 年前

    我有两个抽屉,作为背景,以表明我的列表项目的状态(按下或选择)。Pressed drawable是一个选择器,但没有指定状态;它通过XML连接起来成为android:列表选择器名单。

    <?xml version="1.0" encoding="utf-8"?>
    <selector
        xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:drawable="@drawable/my_actual_drawable" />
    </selector>
    

    但是,所选的可绘制项是由代码应用的,因为它很复杂,并且在选择一个项时需要发生多个简单的后台可绘制更改。

    onItemClick 达到我的名单。

    一种解决方案是使用带状态的选择器(这就是选择器的用途!):

    <?xml version="1.0" encoding="utf-8"?>
    <selector
        xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true"
            android:drawable="@drawable/my_actual_drawable" />
    </selector>
    

    麦克里克 我把 setBackgroundResource 打电话。

    另一个解决办法是不仅监测 麦克里克 onTouch 事件,并在代码中处理一切;这似乎使事情变得太慢。

    我能做些什么来避免闪烁和双选状态?

    1 回复  |  直到 14 年前
        1
  •  1
  •   John    14 年前

    我知道你说你的情况比简单地改变背景更复杂,所以我很抱歉我过于简化了。

    我喜欢用 list_selector_background from the android framework drawable documentation for state list 作为我做这类事情的参考,尽管列表背景可能比你的要复杂一些。