我有一个列表视图,列表项可以在按下时展开。如果我按下列表中的最后一个可见项目,则不显示展开的部分。如何滚动列表视图以便在展开后显示完整视图?
答案 0 :(得分:1)
我用以下代码解决了这个问题:
if (listItemView != null) {
Rect listViewRect = new Rect();
Rect listItemRect = new Rect();
getListView().getHitRect(listViewRect);
listItemView.getHitRect(listItemRect);
int bottom = listItemRect.bottom + listItemView.getHeight();
if (bottom > listViewRect.bottom) {
int y = bottom - listViewRect.bottom;
getListView().scrollTo(getListView().getScrollX(), y);
}
}
现在剩下的一个问题是当你调用scrollTo然后用手指按下列表时就像要滚动它一样,列表会在你调用scrollTo之前滚动回到该位置。
答案 1 :(得分:0)
我不确定,但是如果你调用scrollTo(Integer.MAX_VALUE)会发生什么?