hmwzzww 2013-07-02 08:52 采纳率: 100%
浏览 4740
已采纳

android ListView 做下拉刷新 下拉跳到第一项怎么解决

listView.setonRefreshListener(new OnRefreshListener() {

        @Override
        public void onRefresh() {

            Log.e(TAG, "---下拉刷新---");
            new AsyncTask<Void, Void, Void>() {
                protected Void doInBackground(Void... params) {
                    try {
                        mylineslistlist.clear();
                        mylinesorderlist.clear();
                        list.clear();
                        getMylines(0);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return null;
                }

                protected void onPostExecute(Void result) {
                    adapter.notifyDataSetChanged();
                    listView.onRefreshComplete();
                }

            }.execute();

        }
    });
listView.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(final AbsListView view,
                int scrollState) {
            listView.onScrollStateChanged(view, scrollState);
            // 数据为空--不用继续下面代码了
            if (list.size() == 0)
                return;

            // 判断是否滚动到底部
            boolean scrollEnd = false;
            try {
                if (view.getPositionForView(loadingLayout) == view
                        .getLastVisiblePosition())
                    scrollEnd = true;
            } catch (Exception e) {
                scrollEnd = false;
            }
            if (scrollEnd) {

                // 如果是自动加载,可以在这里放置异步加载数据的代码
                Log.e("LOADMORE", "loading...");
                if (currentPage < pageNum) {
                    // Log.e(TAG, "---currentPage is " + currentPage);
                    currentPage++;
                    // Log.e(TAG, "---currentPage is " + currentPage);
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            // Log.d(TAG, "---loadData page is" +
                            // currentPage);
                            getMylines(currentPage);

// listView.setSelection(view
// .getLastVisiblePosition() - 1); // 设置选中项
// setLoadView("加载更多"); //恢复按钮文字
}
}, 1000);
} else {
listView.removeFooterView(loadingLayout);
}

            }

        }
  • 写回答

2条回答 默认 最新

  • sunny635533 2013-07-18 10:14
    关注

    mDataArrays.add(entity);
    mAdapter.notifyDataSetChanged(); //及时通知listview更新
    lv_info_contain.setSelection(mAdapter.getCount());

    这些代码是将listview最新那条数据添在最后面,你可以修改下就能用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示