Risposte:
È possibile aggiungere TextField
un as child
a a Container
che ha una proprietà 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"),
)
Ecco una risposta estesa. A DecoratedBox
è ciò di cui hai bisogno per aggiungere un bordo, ma sto usando a Container
per comodità di aggiungere margine e riempimento.
Ecco la configurazione generale.
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),
),
);
}
dove il BoxDecoration
è
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(),
);
}
Questi hanno una larghezza di confine 1
, 3
e 10
rispettivamente.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 1, // <--- border width here
),
);
}
Questi hanno un colore del bordo di
Colors.red
Colors.blue
Colors.green
Codice
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
color: Colors.red, // <--- border color
width: 5.0,
),
);
}
Questi hanno un lato di confine
Codice
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,
),
),
);
}
Questi hanno raggi confine 5
, 10
e 30
, rispettivamente.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.all(
Radius.circular(5.0) // <--- border radius here
),
);
}
DecoratedBox
/ BoxDecoration
sono molto flessibili. Leggi Flutter - Box Cheat Sheet per molte altre idee.
Come indicato nella documentazione, il flutter preferisce la composizione ai parametri. Il più delle volte ciò che stai cercando non è una proprietà, ma piuttosto un wrapper (e talvolta alcuni helper / "costruttore")
Per i bordi ciò che vuoi è DecoratedBox
, che ha una decoration
proprietà che definisce i bordi; ma anche immagini di sfondo o ombre.
In alternativa, come ha detto @Aziza, puoi usare Container
. Che è la combinazione di DecoratedBox
, SizedBox
e pochi altri widget utili.
Il modo migliore è usare BoxDecoration ()
Vantaggio
Svantaggio
BoxDecoration
utilizzare solo con il Container
widget, quindi si desidera avvolgere il widgetContainer()
Esempio
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"),
)
L'uso di BoxDecoration () è il modo migliore per mostrare il bordo.
Container(
decoration: BoxDecoration(
border: Border.all(
color: Color(0xff000000),
width: 4,
)),
child: //Your child widget
),
Puoi anche visualizzare il formato completo qui