Android滚动最后一个可见的ListItem,直到它完全可见

时间:2014-03-03 15:18:42

标签: android android-listview

我有一个列表视图,列表项可以在按下时展开。如果我按下列表中的最后一个可见项目,则不显示展开的部分。如何滚动列表视图以便在展开后显示完整视图?

2 个答案:

答案 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)会发生什么?