Jawaban:
Anda dapat menambahkan TextField
as sebagai child
ke Container
yang memiliki properti BoxDecoration
with 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"),
)
Ini jawaban yang diperluas. A DecoratedBox
adalah apa yang Anda butuhkan untuk menambahkan batas, tetapi saya menggunakan Container
untuk kenyamanan menambahkan margin dan bantalan.
Berikut ini adalah pengaturan umum.
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),
),
);
}
dimana BoxDecoration
adalah
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(),
);
}
Ini memiliki lebar perbatasan 1
, 3
dan 10
masing-masing.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 1, // <--- border width here
),
);
}
Ini memiliki warna batas
Colors.red
Colors.blue
Colors.green
Kode
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
color: Colors.red, // <--- border color
width: 5.0,
),
);
}
Ini memiliki sisi perbatasan
Kode
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,
),
),
);
}
Ini memiliki jari-jari perbatasan 5
, 10
dan 30
masing-masing.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.all(
Radius.circular(5.0) // <--- border radius here
),
);
}
DecoratedBox
Saya BoxDecoration
sangat fleksibel. Baca Flutter - BoxDecoration Cheat Sheet untuk lebih banyak ide.
Seperti yang dinyatakan dalam dokumentasi, flutter lebih suka komposisi daripada parameter. Sebagian besar waktu yang Anda cari bukanlah properti, melainkan bungkus (dan terkadang beberapa pembantu / "pembangun")
Untuk perbatasan yang Anda inginkan adalah DecoratedBox
, yang memiliki decoration
properti yang mendefinisikan batas; tetapi juga gambar latar belakang atau bayangan.
Atau seperti kata @Aziza, Anda dapat menggunakan Container
. Yang merupakan kombinasi dari DecoratedBox
, SizedBox
dan beberapa widget bermanfaat lainnya.
Cara terbaik menggunakan BoxDecoration ()
Keuntungan
Kerugian
BoxDecoration
hanya gunakan dengan Container
widget sehingga Anda ingin membungkus widget AndaContainer()
Contoh
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"),
)
Menggunakan BoxDecoration () adalah cara terbaik untuk menunjukkan batas.
Container(
decoration: BoxDecoration(
border: Border.all(
color: Color(0xff000000),
width: 4,
)),
child: //Your child widget
),
Anda juga dapat melihat format lengkap di sini