Добрый день,
Мне нужно показать список карт верности, одну на других с небольшим полем границы, и, нажимая на нее, она полностью раскрывается при скольжении.
Во фрагменте я использую ConstraintLayout
где-то на экране, который заполняю кодом.Я добавляю все дочерние элементы (общее количество, известное после вызова WS) в ConstraintLayout, затем я использую ConstraintSet
для установки начальных ограничений.
Но при создании начального фрагмента я обнаружил, что Iнеобходимо применить TimeOut между ConstraintLayout
населением и созданием Constraints
(отвратительно, правда?)
добавление каждой карты ...
val card = FrequencyCardView()
fid_card_container.addView(card as View)
listCard.add(card)
Затем создайте ограничения:
val set = ConstraintSet()
val containerId = fid_card_container.id
set.clone(fid_card_container)
listCard.forEachIndexed { index, card ->
val marginTop = when (index) {
0 -> 0
else -> (listCard[index -1] as ViewGroup).height / 4
}
val rootId = if (index == 0) containerId else (index - 1)
set.connect(card.getId(), TOP, rootId, TOP, marginTop)
set.connect(card.getId(), ConstraintSet.START, containerId, ConstraintSet.START, 0)
set.connect(card.getId(), ConstraintSet.END, containerId, ConstraintSet.END, 0)
card.setOpen(false)
}
// Apply the changes
set.applyTo(fid_card_container)
Есть идеи, зачем мне применять любой тайм-аут между добавлением Childs в ConstraintLayout и затем добавлением Constraints?
Есть ли лучшее решение, что это уродливый TimeOut?Спасибо