Відповіді:
Ви можете додати 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.redColors.blueColors.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)
);