Android 滚动顶部时的回收器视图应加载数据
我正在尝试制作一个聊天应用程序,当用户滚动到顶部时,服务器只获取并显示15条消息我想加载更多数据并将其附加到arraylist我尝试了addonScroll listener,但只有当用户滚动到底部而不是顶部时才会触发它如果用户滚动到顶部Android 滚动顶部时的回收器视图应加载数据,android,arraylist,scroll,android-asynctask,android-recyclerview,Android,Arraylist,Scroll,Android Asynctask,Android Recyclerview,我正在尝试制作一个聊天应用程序,当用户滚动到顶部时,服务器只获取并显示15条消息我想加载更多数据并将其附加到arraylist我尝试了addonScroll listener,但只有当用户滚动到底部而不是顶部时才会触发它如果用户滚动到顶部 public UserAdapter(RecyclerView recyclerView, Activity activity, ArrayList<User> arrayList) { this.activity = activity
public UserAdapter(RecyclerView recyclerView, Activity activity, ArrayList<User> arrayList) {
this.activity = activity;
this.arrayList = arrayList;
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);
totalItemCount = linearLayoutManager.getItemCount();
lastItemCount = linearLayoutManager.findLastVisibleItemPosition();
Log.d(TAG, "onScrolled: " + lastItemCount + " " + totalItemCount);
if (!isLoading && totalItemCount <= (lastItemCount + visibleThreshold)) {
if (iLoadMore != null) {
iLoadMore.onLoadMore();
isLoading = true;
}
}
}
});
}
recyclerViewParticulars.addOnScrollListener(新的RecyclerView.OnScrollListener(){
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
super.onScrolled(recyclerView、dx、dy);
如果(dy>0){
//向上滚动
Log.d(“recyclerviewscroll”、“up”);
}否则,如果(dy)尝试反转您的recylerview加载数据,谢谢,当我在适配器linearLayoutManager.setReverseLayout(true)中编写时;它对我有效,我得到了我想要的功能,谢谢它对我不起作用,但linearLayoutManager.setReverseLayout(true)对我有效,谢谢您的关注
adapter.setUnLoaded();
adapter.setiLoadMore(new ILoadMore() {
@Override
public void onLoadMore() {
arrayList.add(null);//for the progressbar
adapter.notifyItemInserted(arrayList.size() - 1);
Log.d("LOADMORE", "onLoadMore: scrolling working");
BackgroundTask backgroundTask1 = new BackgroundTask(getApplicationContext());
backgroundTask1.delegate = (BackgroundTask.AsynResponse) context;
backgroundTask1.execute("getuser");
}
});
recyclerViewParticulars.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0 ) {
// Scrolling up
Log.d("recyclerviewscroll", "up");
} else if(dy <0 ){
// Scrolling down
Log.d("recyclerviewscroll", "down");
}
}
}