Форум для тех, кто программирует под Android
Anonymous
Заполнение выпадающей части
Сообщение
Anonymous » 13 фев 2025, 13:28
При создании раскрывающегося меню в Compose я столкнулся с проблемой, когда мой выпадающий матч всегда будет заполнять модификатор. Однако добавление прокладки в модификатор не сработало ... < /p>
Код: Выделить всё
@Composable
fun PriorityDropDown(
priority: Priority,
onPrioritySelected: (Priority) -> Unit
) {
var expanded by remember { mutableStateOf(false) }
val dropDownIconAngle: Float by animateFloatAsState(targetValue = if (expanded) 0f else -90f)
Row(
modifier = Modifier
.fillMaxWidth()
.background(MaterialTheme.colors.background)
.height(PRIORITY_DROPDOWN_HEIGHT)
.clickable { expanded = true }
.border(
width = 1.dp,
shape = MaterialTheme.shapes.small,
color = MaterialTheme.colors.onSurface.copy(alpha = ContentAlpha.disabled)
),
verticalAlignment = Alignment.CenterVertically
) {
Canvas(
modifier = Modifier
.size(PRIORITY_INDICATOR_SIZE)
.weight(1.5f),
onDraw = {
drawCircle(color = priority.color)
}
)
Text(
text = priority.name,
style = MaterialTheme.typography.subtitle2,
modifier = Modifier.weight(8f)
)
IconButton(
onClick = { expanded = true },
modifier = Modifier.weight(2f)
) {
Icon(
imageVector = Icons.Filled.ArrowDropDown,
contentDescription = stringResource(R.string.drop_down_arrow),
modifier = Modifier
.alpha(ContentAlpha.medium)
.rotate(dropDownIconAngle)
)
}
DropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false },
modifier = Modifier
.fillMaxWidth()
) {
// ...
}
}
}
Каково это без прокладки:
< /p>
Каково это с жестким кодированием .fillmaxwidth (fraction = 0.942f) < /code> < /p>
Подробнее здесь:
https://stackoverflow.com/questions/699 ... nu-padding
1739442483
Anonymous
При создании раскрывающегося меню в Compose я столкнулся с проблемой, когда мой выпадающий матч всегда будет заполнять модификатор. Однако добавление прокладки в модификатор не сработало ... < /p> [code]@Composable fun PriorityDropDown( priority: Priority, onPrioritySelected: (Priority) -> Unit ) { var expanded by remember { mutableStateOf(false) } val dropDownIconAngle: Float by animateFloatAsState(targetValue = if (expanded) 0f else -90f) Row( modifier = Modifier .fillMaxWidth() .background(MaterialTheme.colors.background) .height(PRIORITY_DROPDOWN_HEIGHT) .clickable { expanded = true } .border( width = 1.dp, shape = MaterialTheme.shapes.small, color = MaterialTheme.colors.onSurface.copy(alpha = ContentAlpha.disabled) ), verticalAlignment = Alignment.CenterVertically ) { Canvas( modifier = Modifier .size(PRIORITY_INDICATOR_SIZE) .weight(1.5f), onDraw = { drawCircle(color = priority.color) } ) Text( text = priority.name, style = MaterialTheme.typography.subtitle2, modifier = Modifier.weight(8f) ) IconButton( onClick = { expanded = true }, modifier = Modifier.weight(2f) ) { Icon( imageVector = Icons.Filled.ArrowDropDown, contentDescription = stringResource(R.string.drop_down_arrow), modifier = Modifier .alpha(ContentAlpha.medium) .rotate(dropDownIconAngle) ) } DropdownMenu( expanded = expanded, onDismissRequest = { expanded = false }, modifier = Modifier .fillMaxWidth() ) { // ... } } } [/code] Каково это без прокладки: < /p> Каково это с жестким кодированием .fillmaxwidth (fraction = 0.942f) < /code> < /p> Подробнее здесь: [url]https://stackoverflow.com/questions/69939854/dropdownmenu-padding[/url]