我有一個用戶的飼料,其中用戶的帖子將顯示,如果當前用戶跟着他們,目前我有loadMoreListener
工作正常加載下一批圖像時,他們到達RecyclerView
的底部。但是,當我到達列表中的最後一項(Feed只顯示50個帖子)時,它會嘗試加載更多並導致OutOfMemoryException
。我已經限制了適配器中列表的大小,但是現在當用戶擊中底部停止顯示進度並停止OnLoadMoreListener觸發時,我似乎無法解決問題。這是我到目前爲止已經試過:onLoadMoreListener不會停止加載 - RecyclerView - Android
適配器構造:
public RecyclerViewAdapterAllFeeds(Context context,
final ArrayList<AllFeedsDataModel> previousPostsList, final boolean profile, RecyclerView recyclerView, final ProgressBar progressBar) {
this.context = context;
this.previousPostsList = previousPostsList;
this.profile = profile;
if(recyclerView.getLayoutManager() instanceof LinearLayoutManager){
final LinearLayoutManager linearLayoutManager = (LinearLayoutManager)recyclerView.getLayoutManager();
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
progressBar.setVisibility(View.VISIBLE);
if (getItemCount() > LOADED_POSTS - 2) {
totalItemCount = getItemCount();
// total_posts = getItemCount();
lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
if (lastVisibleItem <= TOTAL_POSTS) {
if (!loading && totalItemCount <= (lastVisibleItem)) {
if (onLoadMoreListener != null) {
onLoadMoreListener.onLoadMore();
}
loading = true;
}
}
}
}
});
}
}
onLoadMoreListener
adapter = new RecyclerViewAdapterAllFeeds(getActivity(), latestUpdatesList, false, recyclerView, progressBar);
recyclerView.setAdapter(adapter);// set adapter on recyclerview
adapter.setOnLoadMoreListener(new RecyclerViewAdapterAllFeeds.OnLoadMoreListener() {
@Override
public void onLoadMore() {
refreshCount++;
populateRecyclerView(true, refreshCount);
adapter.update(updatesList);
adapter.setLoaded();
System.out.println("load");
}
});
adapter.notifyDataSetChanged();// Notify the adapter
progressBar.setIndeterminate(false);
progressBar.setVisibility(View.INVISIBLE);
我的問題是我怎麼能阻止它加載如果總員額少比限制條件還是知道何時最終產品可見?
你能解釋一下,如果我想在將來改變它,這將如何對我的情況有利,它是否適合任何數量的帖子? – BIW
當您到達列表的底部時,請刪除OnScrollListener。是的,這是與所有號碼後。 – Ruben
虐待它,讓你知道芽。 – BIW