Respuestas:
Puede agregar el TextField
as child
a un Container
que tiene una propiedad 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"),
)
Aquí hay una respuesta ampliada. A DecoratedBox
es lo que necesita para agregar un borde, pero estoy usando un Container
para la comodidad de agregar margen y relleno.
Aquí está la configuración general.
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),
),
);
}
donde el BoxDecoration
es
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(),
);
}
Estos tienen una anchura de borde de 1
, 3
y 10
respectivamente.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 1, // <--- border width here
),
);
}
Estos tienen un color de borde de
Colors.red
Colors.blue
Colors.green
Código
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
color: Colors.red, // <--- border color
width: 5.0,
),
);
}
Estos tienen un borde lateral de
Código
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,
),
),
);
}
Estos tienen radios de frontera 5
, 10
y 30
respectivamente.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.all(
Radius.circular(5.0) // <--- border radius here
),
);
}
DecoratedBox
/ BoxDecoration
son muy flexibles Lea Flutter - BoxDecoration Cheat Sheet para muchas más ideas.
Como se indica en la documentación, el aleteo prefiere la composición sobre los parámetros. La mayoría de las veces lo que está buscando no es una propiedad, sino un contenedor (y, a veces, algunos ayudantes / "constructores")
Para las fronteras lo que quieres es DecoratedBox
, que tiene undecoration
propiedad que define los bordes; pero también imágenes de fondo o sombras.
Alternativamente, como dijo @Aziza, puede usar Container
. Cuál es la combinación de DecoratedBox
, SizedBox
y algunos otros widgets útiles.
La mejor manera es usar BoxDecoration ()
Ventaja
Desventaja
BoxDecoration
solo use con Container
widget para que desee envolver su widget enContainer()
Ejemplo
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"),
)
Usar BoxDecoration () es la mejor manera de mostrar el borde.
Container(
decoration: BoxDecoration(
border: Border.all(
color: Color(0xff000000),
width: 4,
)),
child: //Your child widget
),
También puedes ver el formato completo aquí