sizedbox container dart flutter

dart - container - ¿Cómo agrego un borde a un widget, en Flutter?



flutter stack (3)

Estoy usando Flutter, y me gustaría agregar un borde a un widget (en este caso, un widget de texto).

Intenté TextStyle y Text, pero no vi cómo agregar un borde.


Aquí hay una respuesta ampliada. Un DecoratedBox es lo que necesita para agregar un borde, pero estoy usando un Container para la conveniencia 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 está la BoxDecoration

BoxDecoration myBoxDecoration() { return BoxDecoration( border: Border.all(), ); }

Ancho del borde

Estos tienen un ancho de borde de 1 , 3 y 10 respectivamente.

BoxDecoration myBoxDecoration() { return BoxDecoration( border: Border.all( width: 1, // <--- border width here ), ); }

Color del borde

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, ), ); }

Lado de la frontera

Estos tienen un borde lateral de

  • izquierda (3.0), superior (3.0)
  • inferior (13.0)
  • izquierda (azul [100], 15.0), superior (azul [300], 10.0), derecha (azul [500], 5.0), inferior (azul [800], 3.0)

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, ), ), ); }

Radio de borde

Estos tienen radios de borde de 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 ), ); }

Continuando

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 algunas veces algunos ayudantes / "constructores")

Para los bordes, lo que desea es DecoratedBox , que tiene una propiedad de decoration 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.


Puede agregar TextField como elemento child a un Container que tiene una BoxDecoration con propiedad de border :

new Container( margin: const EdgeInsets.all(15.0), padding: const EdgeInsets.all(3.0), decoration: new BoxDecoration( border: new Border.all(color: Colors.blueAccent) ), child: new Text("My Awesome Border"), )