Android 突出显示所选项目
您好,我遇到了一个奇怪的问题我想突出显示listview中的选定项目 这是我的xml文件 selected.xmlAndroid 突出显示所选项目,android,xml,listview,android-listview,Android,Xml,Listview,Android Listview,您好,我遇到了一个奇怪的问题我想突出显示listview中的选定项目 这是我的xml文件 selected.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/header"
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/header" />
<item android:state_focused="true" android:drawable="@color/selected" />
</selector>
listitem_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@color/android:transparent" />
<item android:drawable="@drawable/selector" />
</selector>
承载ListView的活动
<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="match_parent"
android:layout_marginBottom="2dp"
android:background="@drawable/listitem_background" >
...
<ListView
android:id="@+id/carsList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/carConfirmBtn"
android:layout_below="@id/carSelect"
android:paddingLeft="@dimen/small"
android:paddingRight="@dimen/small"
android:listSelector="@drawable/selector" />
</RelativeLayout>
...
最后一段代码定义了
carsList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
carsList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
carsList.setSelection(pos);
}
});
carsList.setChoiceMode(ListView.CHOICE\u MODE\u SINGLE);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(适配器视图arg0、视图arg1、内部位置、,
长arg3){
汽车名单(pos);
}
});
请帮助在获取视图中,在返回视图之前,添加以下代码:- 无论要突出显示哪一行,请修改if语句。“平移”高亮显示选定行5秒钟(您可以更改它),颜色慢慢淡出为白色。检查xml
if(position == 0){
viewHolderThubnail.relImage.setBackgroundResource(R.drawable.translate);
TransitionDrawable transition = (TransitionDrawable) viewHolderThubnail.relImage.getBackground();
transition.startTransition(1000); // 1000 is in milliseconds
highlightPosition =-1;
}else{
/*TransitionDrawable transition = (TransitionDrawable) viewHolderThubnail.relImage.getBackground();
transition.startTransition(1000);*/
viewHolderThubnail.relImage.setBackgroundResource(R.color.white);
}
translate.xml
<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The drawables used here can be solid colors, gradients, shapes, images, etc. -->
<item android:drawable="@drawable/new_state" />
<item android:drawable="@drawable/original_state" />
</transition>
new_state.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#92BCE7"/>
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFFF"/>
</shape>
原始状态.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#92BCE7"/>
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFFF"/>
</shape>
如果您的listview要高亮显示,则重新图像是该行。您可以给出您要显示的图像吗…尝试从
listview中删除android:listSelector=“@drawable/selector”
。我更新问题以保持简单我的意思:)