Как сделать так, чтобы библиотека подкачки работала с реверсирующим обзором? - PullRequest
0 голосов
/ 16 мая 2018

Как использовать новейший пейджинг с бесконечным обратным просмотрщиком для чата?

У меня есть линейное расположение с обратным расположением true:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);

и слушатель внутренней прокрутки:

@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
    super.onScrolled(recyclerView, dx, dy);
    int visibleItemCount = layoutManager.getChildCount();
    int totalItemCount = layoutManager.getItemCount();
    int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();

    if (!isLoading && !isLastPage) {
        if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount
                && firstVisibleItemPosition >= 0
                && totalItemCount >= PAGE_SIZE) {
            loadMoreItems();
        }
    }
}

Запрос на получение сообщений:

SELECT * FROM Message WHERE chatId = :chatId ORDER BY dbId ASC

Используется для комнаты, как показано ниже;

@Query("SELECT * FROM Message WHERE chatId = :chatId ORDER BY dbId ASC")
DataSource.Factory<Integer,Message> fetchAll(String chatId);

Проблема в том, что если я использую ASC в запросе, список автоматически прокручивает и извлекает другие сообщения. если используется DESC, то список сообщений не приходит в порядок.

Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 15 ноября 2018

Я думаю, что это достаточно

layoutManager.setStackFromEnd (false);


layoutManager.setReverseLayout (true);

Если у вас есть инкрементный список в базе данных комнаты (строка индекс / контур), вы можете отсортировать его после него в режиме DESC

...