Conversation
Kaizer22
commented
May 5, 2025

| content = content, | ||
| ) { measurables, constraints -> | ||
| val itemsCount = measurables.size | ||
| val rows = itemsCount / columns + |
There was a problem hiding this comment.
Можно было бы проверить columns на 0
| x = heigh * j, | ||
| y = width * i |
There was a problem hiding this comment.
Здесь не перепутаны heigh и width местами?
| content() | ||
| content = content, | ||
| ) { measurables, constraints -> | ||
| val itemsCount = measurables.size |
There was a problem hiding this comment.
Здесь тоже проверку на 0 можно. Или как-то обойти.
Если measurables.size = 0, т.е. нет элементов, то itemsCount будет = 0. И значит rows = 0.
А ниже мы делим на rows (на 0)
val maxHeight = constraints.maxHeight / rows
There was a problem hiding this comment.
Добавил проверку measurables.size = 0, в этом случае вызываем layout(0, 0, {})
| Constraints( | ||
| maxWidth = maxWidth, | ||
| maxHeight = maxHeight, | ||
| ) |
There was a problem hiding this comment.
Здесь в цикле создаем объект Constraints каждый раз. Чуть эффективнее будет если его вынесем снаружи цикла. Тем более что он одинаковый и не меняется.
| Constraints( | ||
| maxWidth = maxWidth, | ||
| maxHeight = maxHeight, | ||
| ) |
There was a problem hiding this comment.
Еще для читаемости для Constraints можно задать min значения в 0.