Відповіді:
Ви можете додати TextField
як child
до , Container
який має BoxDecoration
з border
власністю:
new Container(
margin: const EdgeInsets.all(15.0),
padding: const EdgeInsets.all(3.0),
decoration: BoxDecoration(
border: Border.all(color: Colors.blueAccent)
),
child: Text("My Awesome Border"),
)
Ось розгорнута відповідь. 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,
),
);
}
Вони мають прикордонну сторону
Код
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 Cheat Sheet для багатьох інших ідей.
Як зазначено в документації, трепет віддає перевагу композиції над параметрами. Більшу частину часу те, що ви шукаєте, - це не власність, а натомість обгортка (а іноді й кілька помічників / "будівельник")
Для кордонів потрібне те DecoratedBox
, що має decoration
властивість, яка визначає межі; але також фонові зображення або тіні.
Або, як сказав @Aziza, ви можете використовувати Container
. Яка комбінація DecoratedBox
, SizedBox
і кілька інших корисних віджетів.
Найкращим способом є використання BoxDecoration ()
Перевага
Недоліки
BoxDecoration
використовувати лише з Container
віджетом, щоб ви хотіли завершити свій віджетContainer()
Приклад
Container(
margin: EdgeInsets.all(10),
padding: EdgeInsets.all(10),
alignment: Alignment.center,
decoration: BoxDecoration(
color: Colors.orange,
border: Border.all(
color: Colors.pink[800],// set border color
width: 3.0), // set border width
borderRadius: BorderRadius.all(
Radius.circular(10.0)), // set rounded corner radius
boxShadow: [BoxShadow(blurRadius: 10,color: Colors.black,offset: Offset(1,3))]// make rounded corner of border
),
child: Text("My demo styling"),
)
Використання BoxDecoration () - найкращий спосіб показу межі.
Container(
decoration: BoxDecoration(
border: Border.all(
color: Color(0xff000000),
width: 4,
)),
child: //Your child widget
),
Ви також можете переглянути повний формат тут
Використовуйте контейнер з Boxdercoration.
BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.circular(10.0)
);