Модификаторы размера игнорируются внутри поверхности.

Я новичок в Compose. Я использую следующий код:

      Card(
    modifier = Modifier
        .width(100.dp)
        .height(100.dp),
    shape = RoundedCornerShape(15.dp),
    backgroundColor = Color.Gray
)

Но по неизвестной причинеCardзанимает весь экран и меняет свой размер только в том случае, если вы используете необходимые модификаторы.fillMaxWidth(0.2f)тоже не работает. Помоги пожалуйста.

ТолькоrequiredHeightиrequiredWidthработа. Остальные меню в порядке

1 ответ

Вы используете в качестве родительского контейнера aSurface. ЭтоBoxс propagateMinConstraints = trueпараметр, который заставляет первого потомка иметь такие же минимальные ограничения или размеры.

В документе:

ЕслиpropagateMinConstraintsустановлено значение true, минимальный размер, установленный в Box, также будет применяться к содержимому, тогда как в противном случае минимальный размер будет применяться только кBox.

Используйте столбец, чтобы обернутьCard.

       Surface(
    modifier = Modifier.fillMaxSize(),
 ){
    Column(){

        Card(
            modifier = Modifier
                .width(100.dp)
                .height(100.dp),
            shape = RoundedCornerShape(15.dp),
            backgroundColor = Color.Gray
        ) {}
    }
}
Другие вопросы по тегам