Как предотвратить перемещение раскрывающегося спискаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как предотвратить перемещение раскрывающегося списка

Сообщение Anonymous »

problem gifКак вы можете видеть на гифке, когда я раскрываюсь, представление ниже выталкивается.
Я хочу, чтобы раскрывающийся список находился над представлением ниже, но не выталкивался. ЧАСenter code hereкак я могу это сделать?
В частности, мне бы хотелось, чтобы анимация была такой же плавной, как сейчас.
Я пробовал использовать DropdownMenu и PopUp, но не смог получить желаемых результатов.
В частности, использование PopUp, казалось, работало, но потом не получилось.
@Composable
fun Test(
modifier: Modifier = Modifier,
selectedText: String,
onSelectedChange: (String) -> Unit
) {
var expanded by remember { mutableStateOf(false) }

val options = listOf(
"선착순",
"직접 선정 (1인)",
"순위 선정 (다수)"
)

Column(
modifier = modifier
.fillMaxWidth()
.clip(RoundedCornerShape(12.dp))
.background(Color(0xFF2C2C2C))
.animateContentSize(
animationSpec = spring(
dampingRatio = Spring.DampingRatioNoBouncy,
stiffness = Spring.StiffnessMediumLow
)
)
) {
Row(
modifier = Modifier
.fillMaxWidth()
.clickable { expanded = !expanded }
.padding(horizontal = 12.dp, vertical = 10.dp),
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = selectedText,
modifier = Modifier.weight(1f),
style = MaterialTheme.typography.bodyMedium,
color = Color.LightGray
)

Icon(
painter = painterResource(
if (expanded) R.drawable.ic_chevron_up_fill_false
else R.drawable.ic_chevron_down_fill_false
),
contentDescription = null,
tint = Color.LightGray
)
}

if (expanded) {
Column(
modifier = Modifier
.fillMaxWidth()
) {
options.forEach { option ->
Row(
modifier = Modifier
.fillMaxWidth()
.clickable {
onSelectedChange(option)
expanded = false
}
.padding(horizontal = 16.dp, vertical = 12.dp),
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = option,
style = MaterialTheme.typography.bodyMedium,
color = if (option == selectedText) {
Color.White
} else {
Color.LightGray
}
)
}
}
}
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-pushed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»