我正在创建一个自定义ListView,如下所示
主要布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center">
<ListView android:id="@+id/listview"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_margin="3dip"
android:fadingEdge="none"
android:soundEffectsEnabled="true"
android:clickable="true"
android:scrollbars="none"
android:divider="#ffcccccc"
android:dividerHeight="1dip"
android:layout_weight="1"/>
</LinearLayout>
自定义ListView
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/sellistitem">
<TextView
android:id="@+id/ListItem"
android:layout_width="wrap_content"
android:layout_height="30dip"
android:layout_margin="1dip"
android:textColor="@color/BLACK"
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:padding="5dip"/>
</RelativeLayout>
和Selector如下
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/BLUE" />
<item android:drawable="@drawable/WHITE" />
</selector>
The Drawable
<resources>
<drawable name="WHITE">#ffffff</drawable>
<drawable name="BLUE">#ff0033cc</drawable>
</resources>
完成此操作后,选择部分工作正常。但是,当我单击任何项目时,所选项目会在实际变为蓝色之前闪烁两次。它不会直接变为蓝色。如何消除这种闪烁效果?
问候,
答案 0 :(得分:0)
试试这个android:cacheColorHint="#00000000"
到listview
答案 1 :(得分:0)
一般来说,选择器很棘手。请尝试使用此选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/selected_background" />
<item android:state_focused="false"
android:state_pressed="false"
android:state_selected="false"
android:state_checked="false"
android:state_enabled="true"
android:state_checkable="false"
android:drawable="@drawable/normal_background"/>
</selector>
请注意,android:drawable attribute
不必须是可绘制的。如果它是一种简单的颜色,您可以使用@color/background_color
格式引用它。
编辑:
好吧,那些白色和蓝色的“drawables”不是drawables,它们只是颜色,你最好在colors.xml
中定义它们。可能这实际上是闪烁的原因。
<resources>
<color name="blue">#ff0033cc</color>
<color name="white">#ffffff</color>
</resources>