问题描述
- 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);
}} }
解决方案
mDataArrays.add(entity);
mAdapter.notifyDataSetChanged(); //及时通知listview更新
lv_info_contain.setSelection(mAdapter.getCount());
这些代码是将listview最新那条数据添在最后面,你可以修改下就能用。
解决方案二:
listView.setSelection(0);是跳到第一项
你现在是要跳到第一项还是说他自动跳到了第一项?
时间: 2024-11-08 22:23:16