RecyclerView с двумя типами просмотра не сохраняет состояние просмотра при прокрутке - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть видоискатель с двумя типами просмотра, один - заголовок, а другой - мои продукты, теперь, когда я выбираю, скажем, 5 раз один продукт, я складываю это количество в представлении элемента, но когда прокручиваю вниз и вверх , представление восстанавливается без сохранения состояния представления, я знаю, что это из-за того, что recyclerview перезапускает представление, а затем просто воссоздает его при прокрутке при нажатии onBindViewHolder (), но мне нужно сохранить это состояние представлений, а не изменять.

У меня нет переключателя в моем селекторе, чтобы я мог проверить, выбрано ли оно или нет, вместо этого мне нужно просто сохранить вид как есть и не изменять его при прокрутке

Я пытался реализовать getItemId и setHasStableIds(true), но в моем адаптере не работает

 override fun getItemId(position: Int): Long {
        return super.getItemId(position)
    }

    override fun getItemViewType(position: Int): Int {
        return when {
            uiItems[position] is String -> {
                HEADER_VIEWTYPE
            }
            uiItems[position] is Product -> {
                PRODUCT_VIEWTYPE
            }
            else -> {
                -1
            }
        }
    }

Как сохранить состояние просмотра без изменения всей строки при прокрутке вверх и вниз в моем окне повторного просмотра?

1 Ответ

0 голосов
/ 06 апреля 2020

Решил проблему, добавив еще один элемент в мой объект, который содержит это количество, а затем восстановил его в onBindViewHolder()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...