我有一个 listView 并希望在您按下它时展开每个项目。我有以下代码可以做到这一点。我通过给 ViewStub 充气来工作。
它工作正常。也就是说,当我按下一个列表项时,它确实会膨胀。到目前为止,一切都很好。
但是,我的列表很长,我注意到当我向下滚动列表时,其他项目也膨胀了。我不完全确定为什么。当我再次向上滚动时,我最初按下的项目已经“放气”,而其他一些项目却变得膨胀了。
@override
public void onListItemClick(ListView l, View v, int position, long id) {
ListView list = getListView();
int start = list.getFirstVisiblePosition();
for (int i = start, j = list.getLastVisiblePosition(); i <= j; i++) {
Cursor item = (Cursor) list.getItemAtPosition(i);
if (id == item.getLong(item.getColumnIndex(ItemColumns._ID))) {
View view = list.getChildAt(i - start);
ViewStub stub = (ViewStub) view.findViewById(R.id.stub);
if (stub != null) {
stub.inflate();
}
}
}
}
任何帮助都感激不尽!