Комментарии 8
Хех, статья интересная, увидел для себя интересный способ работы с ремембером для сохранения размера одних вьюх, чтобы потом проецировать это на другие вьюхи.
Но что насчёт ремемберинга картинок? Сколько бы не пытался следовать гайдлайнам, картинка каждый раз читается. То есть не кешируется, как в ресайклере. Из-за чего на экранах со множеством больших картинок возникают лаги при скролле.
С этой проблемой как-то боретесь? Я видел решение в виде специальной либы Coil, но оно не KMM, поэтому нежелательно...
А насчёт костыля со sticky header как футером - нее, всё таки не стоит так делать, это очень сложно потом поддерживать. Тут либо сделать своё решение (исходники компоуза открыты), либо взять чужую либу (думаю должна быть).
Пробовали для списков использовать иммутабельные коллекции от джетбрейнс? По дефолту List это нестабильный тип и из-за него может происходить рекомпозиция лишний раз. Либо заменить на PersistentList, либо попробовать вьюстейт пометить аннотацией Stable или Immutable (если в целом там находятся нестабильные типы данных).
По поводу костыля - полностью согласен, но порой, у каждого возникают ситуации, когда приходится делать то, чего не очень хочется, особенно когда поджимают сроки :). Тут скорее просто забавный факт, что оно работает вот таким образом, если список перевернут.
Coil вроде бы в третьей версии уже поддерживает мультиплатформу, правда он ещё в альфе
Чтобы сделать кнопку как в третьем случае, можно использовать floatingActionButton у Scaffold'а.
Интересные наблюдения, спасибо! А вот подчёркивания ошибок лично меня заставляют испытывать страдания при чтении (
Jetpack Compose для ленивых