Я думаю, что нашел решение ..
Хотя это обходной путь, он работал для меня.
В моем случае я пытался создать алфавитный секционированный список для именкак это:
**A - HeaderItem**
Aaron - Item
Anny - Item
**B - HeaderItem**
Bob - Item
Bil
**C - HeaderItem**
....
Элементы в ROOM - это, конечно, только имена, когда я пытаюсь отобразить элементы с постраничными страницами и добавить заголовки разделов, это меняет размер списка, и я получаю ту же ошибку.
То, что я сделал, объект HeaderItem оборачивает элемент следующим образом:
Сначала все элементы реализуют интерфейс ListItem
interface ListItem{
const val HEADER = 0
const val ITEM = 1
fun getItemType() : Int
}
Затем элементы заголовка выглядят какthis
class HeaderItem(val headerTitle : String, val item : Item) : ListItem {
@override
fun getItemType() : Int {
return ListItem.HEADER
}
}
Затем, когда я сопоставляю элементы, при добавлении HeaderItem он принимает Item, таким образом, размер отображаемого PagedList не изменяется.Сейчас я не получаю это исключение.
Однако, это создает некоторую дополнительную работу, так как мне пришлось явно установить оформление HeaderItem, а также в адаптере, при привязке элемента заголовка мне пришлось позаботиться о внутреннем Item + всей его логике, такой как прослушиватели щелчков и т. Д.'.
Буду рад, если будет поддержка изменений размера списка из коробки.