Antworten:
Sie können das TextField
als a child
zu einem hinzufügen Container
, das eine BoxDecoration
with- border
Eigenschaft hat:
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"),
)
Hier ist eine erweiterte Antwort. A DecoratedBox
ist das, was Sie brauchen, um einen Rand hinzuzufügen, aber ich verwende a, Container
um das Hinzufügen von Rand und Polsterung zu vereinfachen.
Hier ist das allgemeine Setup.
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),
),
);
}
wo das BoxDecoration
ist
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(),
);
}
Diese haben eine Rahmenbreite von 1
, 3
und 10
sind.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 1, // <--- border width here
),
);
}
Diese haben eine Randfarbe von
Colors.red
Colors.blue
Colors.green
Code
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
color: Colors.red, // <--- border color
width: 5.0,
),
);
}
Diese haben eine Grenzseite von
Code
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,
),
),
);
}
Diese haben Grenzradien 5
, 10
und 30
jeweils.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.all(
Radius.circular(5.0) // <--- border radius here
),
);
}
DecoratedBox
Ich BoxDecoration
bin sehr flexibel. Lesen Sie Flutter - BoxDecoration Cheat Sheet für viele weitere Ideen.
Wie in der Dokumentation angegeben, bevorzugen Flattern die Zusammensetzung gegenüber Parametern. Meistens ist das, wonach Sie suchen, keine Eigenschaft, sondern ein Wrapper (und manchmal ein paar Helfer / "Builder").
Für Grenzen möchten Sie DecoratedBox
eine decoration
Eigenschaft, die Grenzen definiert. aber auch Hintergrundbilder oder Schatten.
Alternativ, wie @Aziza sagte, können Sie verwenden Container
. Welches ist die Kombination aus DecoratedBox
, SizedBox
und ein paar andere nützlichen Widgets.
Am besten verwenden Sie BoxDecoration ()
Vorteil
Nachteil
BoxDecoration
Nur mit Container
Widget verwenden, damit Sie Ihr Widget einbinden könnenContainer()
Beispiel
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"),
)
Die Verwendung von BoxDecoration () ist der beste Weg, um Rahmen anzuzeigen.
Container(
decoration: BoxDecoration(
border: Border.all(
color: Color(0xff000000),
width: 4,
)),
child: //Your child widget
),
Sie können auch Vollformat sehen hier