当我(长按)单击我的 ListView 中的某个项目时,某些列表项会更改其高度(按预期),并且所单击的项会突然移动(有时甚至看不见)。如何将其放在手指下?
通过使用 list.smoothScrollToPosition(),我只能选择哪个项(按索引)将是最可见的项。
view.setTop()(以像素为单位)似乎没有任何作用。
我还尝试了 list.smoothScrollByOffset()(以像素为单位),但随后我需要知道我的物品移动了多少。但是很遗憾,重绘之前的 view.getTop()与重绘之后的 view.getTop()相同。
有什么主意吗?
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
// some action changing the height of some list items
notifyDataSetChanged();
// How to bring the clicked list item back under my finger?
return true;
}
});
答案 0 :(得分:0)
很抱歉问得太快。经过更多的谷歌搜索后,我找到了解决方法in this question。
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
int top = view.getTop();
// some action changing the height of some list items
notifyDataSetChanged();
list.setSelectionFromTop(position, top);
return true;
}
});