Как узнать, какой пункт в фокусе после прокрутки RecyclerView Android? - PullRequest
0 голосов
/ 28 августа 2018

Как получить положение элемента списка, который находится в фокусе после прокрутки RecyclerView? Будет ли это работать?

recyclerview1.addOnScrollListener(new RecyclerView.OnScrollListener())

Если да, то как?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Я только что столкнулся с этой проблемой, и я положил, что я помещаю recyclerView в scrollView. Поэтому, пожалуйста, никогда не помещайте переработчик в scrollView, который также может вызвать mLayoutManager.findFirstVisibleItemPosition (), который всегда возвращает фиксированное значение. а также проверьте recyclerview.setNestedScrollingEnabled (false);

0 голосов
/ 28 августа 2018

Да, есть два способа сделать это.

Один использует onBindViewHolder , в onBindViewHolder добавить

 Log.d("onBindViewHolder", "position =>"+position);
 count++; //for the position

но помните, что подсчитывайте вызовы по нескольку раз для каждой новости, и вы должны считать только по первому вызову.

Другой способ - использовать layoutManagers, т.е. LinearLayoutManager или GridLayoutManager, делая это

int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition();
int lastVisiblePosition = layoutManager.findLastVisibleItemPosition();

ИЛИ для scrollListener вы можете сделать это

recycler.addOnScrollListener(new RecyclerView.OnScrollListener() {

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);

    //you can use other methods as per your requirements
    Toast.makeText(mContext, "Scrolled to"+layoutManager.findLastCompletelyVisibleItemPosition(), Toast.LENGTH_SHORT).show();
})

Надеюсь, это поможет вам.

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