0

我遇到了 ListView 项目的问题。我正在使用 listSelector 。我需要在按下时更改项目背景。但是当我按下它时,所有项目都会改变背景。它发生在 Android 2.3.6 上。在 4.0.3 及更高版本中,它运行良好。

列表选择器

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/defaultSelector">
<item android:drawable="@color/defaultDashboardItemBackground" android:state_enabled="false" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@color/defaultDashboardItemHover" android:state_pressed="true"/>
<item android:drawable="@color/defaultDashboardItemBackground" android:state_focused="true" android:state_pressed="false"/>

一些代码

ListView list = (ListView) act.findViewById(R.id.menu_listview);
list.setBackgroundColor(act.getResources().getColor(getThemeBackground(theme)));
list.setSelector(act.getResources().getDrawable( getThemeSelector(theme)));
list.addHeaderView(createHeader("HEADER"));
list.setAdapter(adap);
4

3 回答 3

1

这对我有用

<ListView
    android:id="@+id/playList"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:listSelector="@android:color/holo_orange_light"
    android:cacheColorHint="#00000000"
    >

</ListView>

在事件 onItemClickListener 添加

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            parent.setSelection(position);

希望这会帮助你。

于 2018-07-16T15:33:30.987 回答
0
 <ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:cacheColorHint="#00000000"
    android:listSelector="#00000000"
    android:fadingEdge="none"/>

并且不要在 ListView 中定义背景颜色。在 listitem.xml 根布局中定义背景颜色(选择器)或图像(选择器)。

希望这会帮助你。

于 2013-05-29T07:17:45.950 回答
0

将此属性设置为您的列表视图android:cacheColorHint="@null" 这可能有助于修复它。

于 2013-05-29T07:12:45.627 回答