Вот развернутый ответ. A DecoratedBox
- это то, что вам нужно, чтобы добавить границу, но я используюContainer
для удобства добавления полей и отступов.
Вот общая настройка.
Widget myWidget() {
return Container(
margin: const EdgeInsets.all(30.0),
padding: const EdgeInsets.all(10.0),
decoration: myBoxDecoration(), // <--- BoxDecoration here
child: Text(
"text",
style: TextStyle(fontSize: 30.0),
),
);
}
где BoxDecoration
это
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(),
);
}
Ширина рамки
Они имеют ширину границы 1
, 3
и 10
соответственно.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 1, // <--- border width here
),
);
}
Цвет границы
Они имеют цвет границы
Colors.red
Colors.blue
Colors.green
Код
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
color: Colors.red, // <--- border color
width: 5.0,
),
);
}
Сторона границы
У них есть граница
- слева (3,0), вверху (3,0)
- низ (13,0)
- слева (синий [100], 15,0), вверху (синий [300], 10,0), справа (синий [500], 5,0), внизу (синий [800], 3,0)
Код
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border(
left: BorderSide( // <--- left side
color: Colors.black,
width: 3.0,
),
top: BorderSide( // <--- top side
color: Colors.black,
width: 3.0,
),
),
);
}
Радиус границы
Они имеют радиусы границы 5
, 10
и 30
соответственно.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.all(
Radius.circular(5.0) // <--- border radius here
),
);
}
Продолжается
DecoratedBox
/ BoxDecoration
очень гибкие. Прочтите шпаргалку Flutter - BoxDecoration, чтобы узнать о многих других идеях.
Как указано в документации, флаттер предпочитает композицию параметрам. В большинстве случаев то, что вы ищете, - это не свойство, а оболочка (а иногда и несколько помощников / «строитель»).
Для границ то, что вы хотите, это
DecoratedBox
, естьdecoration
свойство, определяющее границы; но также и фоновые изображения или тени.В качестве альтернативы, как сказал @Aziza, вы можете использовать
Container
. Какая комбинацияDecoratedBox
,SizedBox
и несколько других полезных виджетов.источник
Лучший способ - использовать BoxDecoration ()
преимущество
Недостаток
BoxDecoration
используйте только сContainer
виджетом, поэтому вы хотите обернуть свой виджет вContainer()
пример
источник
Использование BoxDecoration () - лучший способ показать границу.
Вы также можете просмотреть полный формат здесь
источник
Вы можете использовать Контейнер для размещения своего виджета:
источник
Используйте емкость с Boxdercoration.
источник