У меня есть RecyclerView
, который использует GridLayoutManager
для рендеринга моего набора данных.
spanCount
для менеджера макета равно 2, но я устанавливаю SpanSizeLookup
, чтобы я мог отображать некоторые элементы в виде строк (spanSize = 2), а другие - только половинную ширину (spanSize = 1).
layoutManager = new GridLayoutManager(this.getContext(), 2);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return getSpanSizeByPosition(position);
}
});
Теперь мне нужно определить (в методе адаптера onBindViewHolder()
, если это возможно), будет ли элемент отображаться слева или справа, в случае, если это элемент «полуширины».
Было бы тривиально, если бы все предметы были "полуширины". Простая проверка boolean buttonIsOnTheLeft = position % 2 == 0;
будет достаточно. Но это не работает, если не все элементы имеют «половинную ширину».
Я подозреваю, что мне нужно будет работать с менеджером по расположению, чтобы найти эту информацию, но не знаю, как ...
Итак, кто-то видит, как я могу этого достичь?