以下两种方案都亲测可行:
方案一:(无动画)
listView.setSelection(问题14的position);
方案二:(带动画)
ListView lvBaseList添加问题14后调用
final int targetPosition = 2;//假设你要置顶的ItemView的position = 2
final long targetId = adapter.getItemId(targetPosition);
View child = getTargetView(lvBaseList, targetId);
final boolean isVisible = child != null;
if (isVisible) {//问题14已显示
Log.d(TAG, "lvBaseList.onItemClick isVisible = true >> ");
Log.d(TAG, "lvBaseList.onItemClick lvBaseList.getY() = " + (int) lvBaseList.getY());
Log.d(TAG, "lvBaseList.onItemClick child.getY() = " + (int) child.getY());
lvBaseList.smoothScrollBy((int) (child.getY() - lvBaseList.getY()), 200);
return;
}
//问题14未显示
Log.d(TAG, "lvBaseList.onItemClick isVisible = false >>