Listview获取位置

今天对Listview 的位置纠结了一天,怎么才能获取到listview滚动过的距离呢?怎么保存listview当前的位置呢?这非常难办.

刚开始试图用Listview.getY()或者ListView.getScrollY(),获取到的全部都是0,我也不知道什么情况,所以千万别这么获取.只能浪费时间.

怎么保存当前的距离呢?一个方法是:先获取可视范围内是第几个View,然后获取第一个View的Top:

int position = listview.getFirstVisiblePosition();

View view = listview.getChildAt(0).getTop();

int top = view==null ? 0:view.getTop();

需要恢复的时候使用:

listView.setSelectionFromTop(position , top );

你可能感兴趣的:(Listview获取位置)