我遇到了ListView项目的问题。我正在使用listSelector。 按下时我需要更改项目背景。但是当我按下它时,所有项目都会改变背景。它出现在Android 2.3.6上。 4.0.3以上它运行良好。
ListSelector
<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);
答案 0 :(得分: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);
希望这会对您有所帮助。
答案 1 :(得分:0)
将此属性设置为listview android:cacheColorHint="@null"
这可能有助于解决它。
答案 2 :(得分: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根布局中定义背景颜色(选择器)或图像(选择器)。
希望这会对你有所帮助。