Целевого поведение:ViewHolder в recyclerView регистр видимой позиции просмотра и не абсолютное положение вида
Здравствуй Я использую recyclerView, чтобы отобразить сетку изображения, загруженную из списка <> сохраненного в ViewAdapter. Когда пользователь нажимает на изображение, создается новый фрагмент и присваивается в качестве аргумента соответствующий элемент в списке <>. Я делаю это с этим кодом
private class ShowHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
//holder code...
@Override
public void onClick(View view) {
int itemPosition = mRecyclerView.indexOfChild(view);
Fragment newDetail = DetailFragment.newInstance(mShowAdapter.getList().get(itemPosition));
//launch Fragment
}
}
Это: mShowAdapter.getList().get(itemPosition)
вернуть товар, который будет передан из списка <>. Это отлично работает для любого элемента в представлении, но только если я НЕ прокручиваю вниз.
Исправлена ошибка:
Когда я прокручиваю вниз несколько страниц, и я щелкните элемент, неправильная деталь извлекается из списка. Например, допустим, я нажимаю первый видимый элемент после прокрутки нескольких страниц. Элемент, полученный из списка, на самом деле является первым элементом в списке <>, а не 27-м.
Это происходит потому, что recyclerView регистрирует положение клика относительно элементов VISIBLE. Не имеет значения, как далеко вниз я прокручиваю, если я нажимаю третий видимый элемент, это то же самое, что если бы я попал в третий абсолютный элемент вверху.
Как исправить это, чтобы получить правильный элемент?
Сейчас вот-вот должен был отредактировать вопрос. Использование 'int itemPosition = MyViewHolder.this.getAdapterPosition(); 'решает проблему. – fgoogle
Проблема @fgoogle решена? –
Да, как вы можете видеть, я принял ваш ответ. – fgoogle