как создать файл класса выхода из Google в Android - PullRequest
0 голосов
/ 11 октября 2019

файл класса легко получить доступ к каждой странице в Android

Ответы [ 5 ]

0 голосов
/ 11 октября 2019

Переопределить onAttachedToRecyclerView, чтобы получить ссылку RecyclerView в классе адаптера

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);

        mRecyclerView = recyclerView;
    }

Переопределить onViewRecycled, чтобы получить lastVisiblePosition, которое можно использовать, когда вы снова перезагрузите представление вашего переработчика

@Override
    public void onViewRecycled(SiteHolder viewHolder) {
        lastVisiblePosition  = ((GridLayoutManager) mRecyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();

    }

Где бы вы ни выполняли перезагрузку данных (как установщик Arraylist или как-то еще), сначала позвоните

notifyDataSetChanged();

, а затем

((GridLayoutManager) mRecyclerView.getLayoutManager()).scrollToPosition(lastVisiblePosition);

Это обеспечит первую перезагрузку данныхзатем прокрутка

0 голосов
/ 11 октября 2019

mAdapter.notifyDataSetChanged ();уведомит весь ваш список, что заставит ваш список перемещаться к верхней позиции, поэтому используйте notifyItemChanged (int position) , который обновит только эту позицию, и если вы хотите уведомить некоторый диапазон, используйте notifyItemRangeChanged (позиция, размер) для получения подробной информации обратитесь к этой ссылке для получения более подробной информации. RecyclerView.Adapter для уведомления

0 голосов
/ 11 октября 2019

Вы можете использовать этот метод

mAdapter.notifyItemRangeChanged(position, list.size());

В то время, когда вы добавляете новые элементы в список адаптера, используйте этот метод для уведомления вашего адаптера. он сохранит текущую позицию и добавит все новые элементы ниже последнего элемента.

0 голосов
/ 11 октября 2019

Первоначально установите его на ноль

lastFirstVisiblePosition = 0;

Вы можете сохранить позицию прокрутки на прокрутке и установить позицию прокрутки следующим образом.

((LinearLayoutManager) rv.getLayoutManager()).scrollToPosition(lastFirstVisiblePosition);

, и если это не сработает, попробуйте ниже

((LinearLayoutManager) rv.getLayoutManager()).scrollToPositionWithOffset(lastFirstVisiblePosition,0)
0 голосов
/ 11 октября 2019

вам не нужно сохранять экземпляр вручную, просто убедитесь, что у всех представлений есть уникальный идентификатор в формате xml, и android сделает это за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...