我在平板电脑应用程序中有一个自定义ListView,左边有一个ListView,右边有详细的片段,当你从listView左边选择一个项目我希望它突出显示并保持高亮显示(我这样做了)部分)但当我向下滚动到列表的底部并返回时,由于回收视图,它会忘记突出显示,我该怎样才能以不同的方式进行?
以下是我在ListView适配器中使用的代码:
protected LinearLayout selectedItem;
protected LinearLayout selectedItemPosition = -1;
.
.
.
@Override
public int getViewTypeCount() {
return 3; // I have 3 types of list Items, this part is working fine..
}
public int getItemViewType(int pos) {
// This part works fine too
}
.
.
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
.
.
.
if (selectedItemPosition == pos) {
holder.listItem.setSelected(true);
}
final LinearLayout listItem = holder.listItem;
holder.listItem.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (clickCallback != null) {
if (activateOnClick) {
if (selectedItemPosition > -1) {
selectedItem.setSelected(false);
}
selectedItemPosition = pos;
listItem.setSelected(true);
selectedItem = listItem;
}
clickCallback.callback(NewsItems.get(pos));
}
}
});
答案 0 :(得分:0)
您可以尝试为listview项创建自定义选择器 - listview_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="true"
android:state_pressed="true" android:drawable="@color/yourColor" />
<item android:state_enabled="true"
android:state_focused="true" android:drawable="@color/yourColor" />
<item android:state_enabled="true"
android:state_selected="true" android:drawable="@color/yourColor" />
<item
android:drawable="@color/yourColor" />
</selector>
然后,使用
listView.setSelector(R.drawable.listview_selector);