Android背景选择器按下状态一次显示所有项目

时间:2013-01-12 20:30:40

标签: android android-layout android-drawable

我已经设置了一个背景可绘制选择器,以便在按下时突出显示列表项的背景(类似于我之前已多次完成它,除了在代码中分配了drawable)。首先,我将向您展示问题,然后将我的代码放在底部。如果有人能帮我解决这个问题,我将不胜感激!

此处屏幕正在等待输入:

Waiting for input

我在这里按下并按住一个项目。如果我将手指滑离屏幕而不抬起物品,它仍然是这样的:

enter image description here

如果我按住然后向上滑动以滚动列表,则进入视图的项目不会显示按下的颜色:

enter image description here

这是相关的XML。我在这里设置了可绘制的背景,但它确实在代码中设置,因此它是多余的。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="@dimen/thumbnail_size"
    android:background="@drawable/white_button_background">
...
</Relative...

这是可绘制的XML:

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

    <item android:drawable="@color/stitcher_holo_blue_light" android:state_pressed="true"/>
     <item android:drawable="@android:color/white"/>

 </selector>

以下是在数组适配器中设置背景选择器的代码:

public MyArrayAdapter(...) {
    super(...);
    mItemBackground = mResources.getDrawable(R.drawable.mybuttonselector);
}

public View getView(..., View convertView, ...) {
    ...
    convertView.setBackgroundDrawable(mItemBackground);//I also tried setBackground()
    ...
}

任何想法都将不胜感激!

0 个答案:

没有答案