Я пытаюсь реализовать липкий заголовок, как сказал Севастян Саванюк в:
Как сделать липкие заголовки в RecyclerView? (Без внешней библиотеки)
У меня есть вложенный вид переработчика в виде внешнего переработчика. Я просто хочу, чтобы у моего внутреннего представления переработчика был липкий заголовок.
Но onDrawOver
метод вызывается только один раз.
В результате я рисую заголовок в моем onDrawOver
, но он не липкий!
У меня только один липкий заголовок (элемент 0), вот мой код (kotlin):
override fun isHeader(itemPosition: Int): Boolean = itemPosition == 0
override fun getHeaderPositionForItem(itemPosition: Int): Int = 0
вот мой метод onDrawOver:
@Override
public void onDrawOver(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
super.onDrawOver(c, parent, state);
View topChild = parent.getChildAt(0);
if (topChild == null) {
return;
}
int topChildPosition = parent.getChildAdapterPosition(topChild);
if (topChildPosition == RecyclerView.NO_POSITION) {
return;
}
int headerPos = mListener.getHeaderPositionForItem(topChildPosition);
View currentHeader = getHeaderViewForItem(headerPos, parent);
fixLayoutSize(parent, currentHeader);
int contactPoint = currentHeader.getBottom();
View childInContact = getChildInContact(parent, contactPoint, headerPos);
if (childInContact != null) {
int itemPosition = parent.getChildAdapterPosition(childInContact);
if (mListener.isHeader(itemPosition)) {
moveHeader(c, currentHeader, childInContact);
return;
}
}
drawHeader(c, currentHeader);
}
Как мне закрепить заголовок, почему метод onDrawOver
вызывается только один раз, помогите!