0

我已经覆盖了这样的列表视图滚动行为:

myListView.setOnScrollListener(new OnScrollListener() {

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {

                 if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {


                    }

            }

        });

谁能告诉我滚动完成后滚动到最近项目位置的最佳方式是什么。(例如客户向下或向上滚动)。我尝试使用例如 mylist.SmoothScrollToPosition(),但随后它一一滚动到最后我使用的是 Android 2.2

谢谢

4

2 回答 2

0

未经测试!

当滚动状态从 fling/touch 切换到 idle 时,可以检测到 AbsListView 中的第一个可见项。然后只需调用smoothScrollToPosition您的列表视图。

于 2013-01-15T21:15:24.113 回答
0

您可以使用下方滚动到您上次访问的地点。

List<Item> myListData = ...;
for(Item item : myListData){
    if(isNextItem(Item){
        listView.smoothScrollToPosition(myListData.indexOf(item));
        break;
    }
}

或者如果你知道你的position of item,你可以简单地打电话

listView.smootchScrollToPosition(position);
于 2015-10-08T10:19:27.950 回答