Comments 4
хорошая статья. планируете обзорную статью на более сложные кастомные лэйауты?
Спасибо, статья очень хорошая, многое стало понятнее. Но остались вопросы (вероятно, глупые, потому что я только начал во всем этим разбираться), на которые я не нашёл ответ.
Откуда берутся размеры компонента, которые передаются через measurables? Если я написал свой компонент в виде Compose-функции, то как мне сделать, чтобы для этого компонента возвращались нужные мне минимальные размеры?
Если я при вызове функции компонента указываю модификатор типа Modifier.offset(), то как мне внутри Layout узнать, что был передан такой модификатор, и разместить компонент с учётом этого модификатора?
Можно ли внутрь Layout передать какую-то дополнительную информацию о компоненте? В статье я вижу, что единственный параметр, который отличает один компонент от другого, - это номер его позиции в списке. В моём случае этого недостаточно, мне нужно, чтобы расположение компонента зависело ещё от некоторых параметров.
У меня будут компоненты двух разных типов, которые надо расположить внутри родителя по разным правилам. Я думал о том, чтобы вызывать Layout два раза, но координаты объектов разных типов взаимосвязаны, чтобы их вычислить, придётся дублировать некоторые действия в каждом из Layout'ов, а этого хотелось бы избежать. Можно ли как-то обойтись одним Layout'ом? (Вопрос перекликается с предыдущим - если я внутри Layout буду знать тип каждого компонента, проблем не будет.)
А вообще, конкретно в моём случае было бы гораздо проще вообще не связываться с Layout'ами, а расположить компоненты внутри родителя вручную через модификаторы. Но есть одно но: чтобы вычислить координаты, родитель должен знать ограничения для своих размеров, а я не нашёл способа узнать их кроме как внутри Layout'а. Может, есть ещё какой-то способ их узнать?
Буду очень благодарен, если вы хотя бы подскажете направления, куда копать по этим вопросам.
Создание Custom Layout в Jetpack Compose