Android 下载以下页面数据时,是否有方法在RecyclerView的最后一项下方显示进度(圆形)?

Android 下载以下页面数据时,是否有方法在RecyclerView的最后一项下方显示进度(圆形)?,android,parse-platform,android-recyclerview,Android,Parse Platform,Android Recyclerview,我正在创建一个应用程序,在其中我实现了无限滚动到RecyclerView,但当我到达第一页的底部时,该应用程序将挂起,直到下载下一页的数据。下载后,它开始工作。是否有任何方法显示RecyclerView中最后一项下方的进度(圆形),下载下一页数据后,圆形进度圈消失,我们的下一页将显示在下方 请求项目类别代码如下所示 public class RequestItems extends AsyncTask<Void, Void, Void> { Context context; Prog

我正在创建一个应用程序,在其中我实现了无限滚动到
RecyclerView
,但当我到达第一页的底部时,该应用程序将挂起,直到下载下一页的数据。下载后,它开始工作。是否有任何方法显示
RecyclerView
中最后一项下方的进度(圆形),下载下一页数据后,圆形进度圈消失,我们的下一页将显示在下方

请求项目类别代码如下所示

public class RequestItems extends AsyncTask<Void, Void, Void> {
Context context;
ProgressDialog progressDialog;
List<ParseObject> parseObjects;
List<FeedItem> feedItems=new ArrayList<>();
EventsRecyclerView eventsRecyclerView;
RecyclerView recyclerView;
int skip=0;
ProgressBar progressBar;

RequestItems(Context context,RecyclerView recyclerView) {
    this.context = context;
    this.recyclerView=recyclerView;
}

@Override
protected void onPreExecute() {
    progressDialog = new ProgressDialog(context);
    progressDialog.setMessage("Loading");
    progressDialog.show();
    progressDialog.setCancelable(false);
    super.onPreExecute();
}

@Override
protected Void doInBackground(Void... params) {
    eventsRecyclerView=null;
    Loadmore(eventsRecyclerView);
    return null;
}

@Override
protected void onPostExecute(Void aVoid) {
    super.onPostExecute(aVoid);
    progressDialog.dismiss();
    final EventsRecyclerView eventsRecyclerView=new EventsRecyclerView(context,feedItems);
    int spacingInPixels = context.getResources().getDimensionPixelSize(R.dimen.spacing2);
    recyclerView.addItemDecoration(new SpacesItemDecoration(spacingInPixels));
    LinearLayoutManager manager=new LinearLayoutManager(context);
    recyclerView.setLayoutManager(manager);
    recyclerView.setOnScrollListener(new EndlessScroll(manager, context) {
        @Override
        public void onLoadMore(int current_page) {
            Log.d("amar", "requestitem");

                    skip = skip + 6;
            Loadmore(eventsRecyclerView);
            //  eventsRecyclerView.notifyDataSetChanged();
        }
    });
    recyclerView.setAdapter(eventsRecyclerView);
}

private void Loadmore(EventsRecyclerView eventsRecyclerView) {
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Events");
    query.setSkip(skip);
    query.setLimit(6);
    query.orderByDescending("createdAt");
    try {
        parseObjects = query.find();
    } catch (ParseException e) {
        e.printStackTrace();
    }
    if (!parseObjects.isEmpty()) {
        for (int i = 0; i < parseObjects.size(); i++) {
            FeedItem item = new FeedItem();
            item.setTitle(parseObjects.get(i).getString("Title"));
            item.setDate(parseObjects.get(i).getString("Date"));
            item.setTime(parseObjects.get(i).getString("Time"));
            item.setVenue(parseObjects.get(i).getString("Venue"));
            item.setLike(parseObjects.get(i).getBoolean("Like"));
            ParseFile file = parseObjects.get(i).getParseFile("EventImage");
            try {
                byte bytes[] = file.getData();
                Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap,100,150,true);
                item.setEventImage(bitmap1);
                feedItems.add(item);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }
    if (eventsRecyclerView!=null){
            eventsRecyclerView.notifyDataSetChanged();
    }
}
}

帮我把这个放在你的项目里它很有效

private int currentFirstVisibleItem;
private int currentVisibleItemCount;
private int currentScrollState;
private int totalItemCount;
private int mNumOfAllBooks;
当你实例化你的listview时

 mLoadingMoreFlag = false;
    mListView.setOnScrollListener(new AbsListView.OnScrollListener() {

        public void onScrollStateChanged(AbsListView view, int scrollState) {

            currentScrollState = scrollState;
            if (currentVisibleItemCount > 0 && currentScrollState == SCROLL_STATE_IDLE) {
                if (mListView.getLastVisiblePosition() == (mAdapter.getCount() - 1)) {
                    if (totalItemCount != mNumOfAllBooks) {
                        if (!mLoadingMoreFlag) {
                            mLoadingMoreFlag = true;
                            loadMore();
                        }
                    }
                }
            }

        }

        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, final int totalItemCount) {
            currentFirstVisibleItem = firstVisibleItem;
            currentVisibleItemCount = visibleItemCount;
        }
    });
在loadmore中:

 private void loadMore() {

    mProgress.setVisibility(View.VISIBLE);
   ....
}

只需将mProgress放在布局的底部,并将listview放在xml中

我已经对这篇文章做了相当大的整理,如果它以任何方式失去了它原来的意义,我会重新编辑它。
 private void loadMore() {

    mProgress.setVisibility(View.VISIBLE);
   ....
}