Как вы можете видеть на картинке, когда я раскрываюсь, представление ниже выталкивается.
Я хочу, чтобы раскрывающийся список находился над представлением ниже, но не выталкивался. Как я могу это сделать?
В частности, мне бы хотелось, чтобы анимация была такой же плавной, как сейчас.
Я пробовал использовать 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(radius200))
.background(PoolAosTheme.colors.backgroundTertiary)
.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 = PoolAosTheme.typography.b2Regular,
color = PoolAosTheme.colors.labelSecondary
)
Icon(
painter = painterResource(
if (expanded) R.drawable.ic_chevron_up_fill_false
else R.drawable.ic_chevron_down_fill_false
),
contentDescription = null,
tint = PoolAosTheme.colors.labelSecondary
)
}
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 = PoolAosTheme.typography.b2Regular,
color = if (option == selectedText) {
PoolAosTheme.colors.white
} else {
PoolAosTheme.colors.labelSecondary
}
)
}
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-pushed
Как предотвратить перемещение раскрывающегося списка ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1763488528
Anonymous
Как вы можете видеть на картинке, когда я раскрываюсь, представление ниже выталкивается.
Я хочу, чтобы раскрывающийся список находился над представлением ниже, но не выталкивался. Как я могу это сделать?
В частности, мне бы хотелось, чтобы анимация была такой же плавной, как сейчас.
Я пробовал использовать 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(radius200))
.background(PoolAosTheme.colors.backgroundTertiary)
.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 = PoolAosTheme.typography.b2Regular,
color = PoolAosTheme.colors.labelSecondary
)
Icon(
painter = painterResource(
if (expanded) R.drawable.ic_chevron_up_fill_false
else R.drawable.ic_chevron_down_fill_false
),
contentDescription = null,
tint = PoolAosTheme.colors.labelSecondary
)
}
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 = PoolAosTheme.typography.b2Regular,
color = if (option == selectedText) {
PoolAosTheme.colors.white
} else {
PoolAosTheme.colors.labelSecondary
}
)
}
}
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79823676/how-to-prevent-dropdown-view-from-being-pushed[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия