Как выборочно украшать предметы RecyclerView
Я создаю подклассItemDecoration
из этой сути:https://gist.github.com/alexfu/0f464fc3742f134ccd1e
Как заставить его украшать только предметы с определенным состоянием? Например, украшайте только элементы с определенными позициями, типом ViewHolder и т. Д.
Я изменил вышеупомянутую суть (плюс некоторые изменения в устаревшем Android API) с этим кодом, новсе элементы в любом случае украсить
public boolean isDecorated(View view, RecyclerView parent) {
RecyclerView.ViewHolder holder = parent.getChildViewHolder(view);
return holder instanceof MenuIconViewHolder || holder instanceof MenuDetailViewHolder;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
if (isDecorated(view, parent)) {
if (mOrientation == VERTICAL_LIST) {
outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
} else {
outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
}
} else {
super.getItemOffsets(outRect, view, parent, state);
}
}
Что не так с приведенным выше кодом? Кстати, можно ли считать наилучшей практикой (в отношении разделения интересов) помещение такого рода кода в класс ItemDecoration?