Если кто-то еще приходит сюда в поисках ответа / решения, вот что я сделал. Я использовал GridLayoutManager по умолчанию, используя дочерний RecyclerView в родительском RecyclerView. Родительский RV использует GridLayoutManager, в то время как дочерний RV использует LinearLayoutManager. Для родительского RV, используя множественный viewType, позиция 0 или позиция% 2 == 0 возвращает HEADER_TYPE, а остальные возвращают CARD_TYPE. Используя это
mGridLayoutManager = GridLayoutManager(activity, 3)
mGridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
return when (enquiryAdapter.getItemViewType(position)) {
HEADER_TYPE -> 1
CARD_TYPE -> 2
else -> -1
}
}
}
recyclerView.layoutManager = mGridLayoutManager
Я изменил spanSize. Для позиции, которая возвращает CARD_TYPE, я раздуваю другой RV, который принимает список для разметки представления контента. Я не уверен, что это лучшее решение, но, похоже, это работает для меня. Я с радостью приму любое решение, работающее лучше / проще, чем это.