Android ListView y位置

War*_*lax 1 android listview state position

似乎ListView没有以与ScrollView相同的方式公开其y位置.换句话说:我需要记住ListView滚动到的确切位置,并在我返回活动时设置它.

只是为了澄清:我不需要选择的项目......这很简单.我需要恢复ListView上精确的像素y位置.

谢谢!

dmo*_*mon 17

我在切换方向时保存(在onSaveInstanceState中)和恢复(onCreate)时成功使用了这个:

保存:

    int savedPosition = list.getFirstVisiblePosition();
    View firstVisibleView = list.getChildAt(0);
    int savedListTop = (firstVisibleView == null) ? 0 : firstVisibleView.getTop();
Run Code Online (Sandbox Code Playgroud)

恢复:

   if (savedPosition >= 0) { //initialized to -1
      list.setSelectionFromTop(savedPosition, savedListTop);
    }
Run Code Online (Sandbox Code Playgroud)

这将精确地保存Y位置.好吧,它偶尔会错过几个像素.