Android загружать старое сообщение при прокрутке вверх - PullRequest
0 голосов
/ 16 июня 2020

Я создаю простое приложение для чата, которое отлично подходит для этого. В настоящее время я хотел бы реализовать загрузку с бесконечной прокруткой в ​​обратном порядке, при этом, если я прокручиваю до верхней части моего RecyclerView, когда общее сообщение составляет >= 20, оно загружает 20 более старых сообщений. Я пробовал много возможных решений изо всех сил, но это не работает. Мой приведенный ниже код всегда запускает loadmore, даже когда я прокручиваю вверх или вниз, пожалуйста, мне нужна помощь.

private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
private RecyclerView.Adapter adapter;
private boolean isScrolling;
private int TotalItems;
private int currentVisible;
private int scrolledOutItems = 0;
 @Override
protected void onCreate(Bundle savedInstanceState) {

    recyclerView = findViewById(R.id.recyclerView);
    recyclerView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);

    InitDownloadLast20Messages();

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL){
                    isScrolling = true;
                }
            }

          @Override
          public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                currentVisible = layoutManager.getChildCount();
                TotalItems = layoutManager.getItemCount();
                scrolledOutItems = ((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition();
                int check = TotalItems - currentVisible+scrolledOutItems;
                if (isScrolling && TotalItems == currentVisible + scrolledOutItems ){
                    Log.d(TAG,"Fetch Data More Older Message here ");
                }
        }
    });

}
...