【发布时间】:2014-08-03 23:11:00
【问题描述】:
我有一种方法可以绘制所选项目的视图,但是如果我的 ListView 有滚动条(我的意思是:如果我的屏幕可以显示 9 条“线”-位置-并且总大小大于 9)并且我选择了一个前九个位置,它将选择我选择的位置和最后一个位置(我需要滚动查看的位置)。
示例:如果我选择选择位置 0 并绘制它,则位置 0 和位置 11 上的视图将被绘制。
如果我尝试这样做:
getListView().getChildAt(int)
如果这个位置像'12',它将返回 null,所以我使用的是我在调用 onItemLongClick(AdapterView adapterView, View v, int position , long arg3) 时获得的视图。看起来 View 是基于滚动的,因为我的滚动位置具有相同的 View 对象。
这是我如何绘制视图:
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View v,
int position , long arg3) {
Log.d("", "");
View tmp = adapterView.getChildAt(position);
int oi = adapterView.getSelectedItemPosition();
if(!mPositions.contains(Integer.valueOf(position))){
v.setBackgroundColor(Color.CYAN);
mViews.add(v);
mPositions.add(Integer.valueOf(position));
} else {
v.setBackgroundColor(Color.TRANSPARENT);
mViews.remove(v);
mPositions.remove(Integer.valueOf(position));
}
return true;
}
});
如果列表比我的屏幕大,我如何独立获得不同的视图?
【问题讨论】: