当无尽滚动加载更多数据时显示进度条



好的,所以我使用这个著名的安卓无尽滚动库在我的应用程序中实现了无尽滚动。我想在应用程序到达底部并加载更多数据时显示进度条,然后在我们获取数据时将其隐藏。我正在使用 Volley 来获取数据。

这是我的滚动侦听器

scrollListener = new EndlessRecyclerViewScrollListener(manager) {
        @Override
        public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
            loadMore(page);
            ++page;
        }
    };

这是我的负载更多功能

public void loadMore(int page) {
    String url = url + page;
    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            ArrayList<Deal> deals = new JsonConverter<Deal>().toArrayList(response, Deal.class);
            adapter.addAll(deals);

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG, error.toString());
            Toast.makeText(getApplicationContext(), "Bad Network Connection. Please Try Again", Toast.LENGTH_LONG).show();
            stopAnim();
        }
    }
    );
    int socketTimeout = 30000; // 30 seconds. You can change it
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    stringRequest.setRetryPolicy(policy);
    MySingleton.getInstance(getApplicationContext()).addToRequestQueue(stringRequest);
    mSwipeRefresh.setRefreshing(false);

}

所以现在我想做的是在加载更多数据时显示进度条,并在完成加载时隐藏它。

我试过这个 https://github.com/pwittchen/InfiniteScroll/blob/master/app/src/main/java/com/github/pwittchen/infinitescroll/app/MainActivity.java 但没有用。

我也试过这个 https://gist.github.com/nesquena/a988aac278cff59a9a69但不明白。

现在不能给你确切的源代码,但这是你应该怎么做的:

  • 在回收器视图下方添加 XML 格式的圆形进度条。
  • 将可见性设置为"消失">
  • 每次加载内容时,将可见性设置为可见,直到完成加载。

希望你能实现其余的。

如果您正在寻找进度对话框的代码:

ProgressDialog progressDialog;
progressDialog = new ProgressDialog(TripletLogin.this);
            progressDialog.setTitle("Write Title here");
            progressDialog.setMessage("Loading...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.setCancelable(false);
            progressDialog.setCanceledOnTouchOutside(false);
            progressDialog.setIndeterminate(true);
            progressDialog.show();

在你的onResponse((或onErrorResponse((里面放progressDialog.dismiss((;

最新更新