RecyclerView - Получение позиции адаптера в методе onDraw ItemDecoration? - PullRequest
1 голос
/ 24 июня 2019

В методе рисования itemDecoration есть метод переопределения, называемый getItemOffsets, который позволяет получить позицию адаптера, используя:

@Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
    int childCount = parent.getChildCount();
    int position = parent.getChildAdapterPosition(view);
}

Как бы то ни было, если я попробую этот метод внутри onDraw:

@Override
public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
      int position = parent.getChildAdapterPosition(   ???   );
}

Что я передаю для параметров просмотра?

1 Ответ

1 голос
/ 25 июня 2019

В onDraw() Вы работаете на одном холсте.Чтобы изменить один дочерний элемент, необходимо выполнить итерацию по всем дочерним элементам родителя.

int childCount = parent.getChildCount();

for (int i = 0; i < childCount; ++i) {
    View child = parent.getChildAt(i);
    int childAdapterPosition = parent.getChildAdapterPosition(child);
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...