Câu trả lời:
Bạn có thể thêm TextField
như một child
một Container
mà có một BoxDecoration
với border
bất động sản:
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"),
)
Đây là một câu trả lời mở rộng. A DecoratedBox
là những gì bạn cần để thêm một đường viền, nhưng tôi đang sử dụng một Container
để thuận tiện cho việc thêm lề và phần đệm.
Đây là thiết lập chung.
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),
),
);
}
nơi đó BoxDecoration
là
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(),
);
}
Những có chiều rộng biên giới 1
, 3
và 10
tương ứng.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 1, // <--- border width here
),
);
}
Những cái này có màu viền
Colors.red
Colors.blue
Colors.green
Mã
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
color: Colors.red, // <--- border color
width: 5.0,
),
);
}
Những cái này có một biên giới của
Mã
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,
),
),
);
}
Những có bán kính biên giới 5
, 10
và 30
tương ứng.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.all(
Radius.circular(5.0) // <--- border radius here
),
);
}
DecoratedBox
/ BoxDecoration
rất linh hoạt. Đọc Flutter - BoxDecoration Cheat Sheet để biết thêm nhiều ý tưởng.
Như đã nêu trong tài liệu, flutter thích thành phần hơn các tham số. Hầu hết thời gian những gì bạn đang tìm kiếm không phải là một tài sản, mà thay vào đó là một trình bao bọc (và đôi khi là một vài người trợ giúp / "người xây dựng")
Đối với đường viền những gì bạn muốn là DecoratedBox
, có một thuộc decoration
tính xác định đường viền; mà còn hình nền hoặc bóng.
Hoặc như @Aziza nói, bạn có thể sử dụng Container
. Đó là sự kết hợp của DecoratedBox
, SizedBox
và một vài vật dụng hữu ích khác.
Cách tốt nhất là sử dụng BoxDecoration ()
Lợi thế
Bất lợi
BoxDecoration
chỉ sử dụng với Container
widget để bạn muốn bọc widget của mìnhContainer()
Thí dụ
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"),
)
Sử dụng BoxDecoration () là cách tốt nhất để hiển thị đường viền.
Container(
decoration: BoxDecoration(
border: Border.all(
color: Color(0xff000000),
width: 4,
)),
child: //Your child widget
),
Bạn cũng có thể xem định dạng đầy đủ ở đây