当我的活动暂停时,我有下面的代码来记录我的列表视图中的滚动y位置。

protected void onSaveInstanceState (Bundle outState) {
 super.onSaveInstanceState(outState);
 int scroll = mListView.getScrollY();
 System.out.println (" scrollY" + scroll);
}

但是不管我在哪里垂直滚动列表视图,getScrolly()的值总是返回0。有人能帮我吗?
谢谢您。

最佳答案

ListView.getScrollY()返回0,因为您不是在滚动ListView本身,而是滚动其中的Views。对滚动的任何“视图”调用“getScrolly()”,都将返回实际值(仅在某种程度上,因为它们被回收)。
为了保存您的职位,请尝试以下操作:

@Override
protected void onSaveInstanceState (Bundle outState) {
  super.onSaveInstanceState(outState);
  int scrollPos = mListView.getSelectedItemPosition();
  outState.putInt("MyPosition", scrollPos);
}

@Override
public void onRestoreInstanceState(Bundle inState) {
  super.onRestoreInstanceState(inState);
  int scrollPos = inState.getInt("MyPosition");
  mListView.setSelection(scrollPos);
}

祝你好运!

关于android - 需要帮助使用ListView的getScrollY(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2735460/

10-12 02:47