Oto rozszerzona odpowiedź. A DecoratedBox
jest tym, czego potrzebujesz, aby dodać obramowanie, ale używam go Container
dla wygody dodawania marginesów i dopełnienia.
Oto ogólna konfiguracja.
Widget myWidget() {
return Container(
margin: const EdgeInsets.all(30.0),
padding: const EdgeInsets.all(10.0),
decoration: myBoxDecoration(),
child: Text(
"text",
style: TextStyle(fontSize: 30.0),
),
);
}
gdzie BoxDecoration
jest
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(),
);
}
Szerokość granicy
Mają one szerokość obramowania 1
, 3
oraz 10
odpowiednio.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 1,
),
);
}
Kolor ramki
Te mają kolor obramowania
Colors.red
Colors.blue
Colors.green
Kod
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
color: Colors.red,
width: 5.0,
),
);
}
Strona graniczna
Te mają stronę graniczną
- lewy (3,0), górny (3,0)
- dół (13,0)
- lewy (niebieski [100], 15,0), górny (niebieski [300], 10,0), prawy (niebieski [500], 5,0), dolny (niebieski [800], 3,0)
Kod
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border(
left: BorderSide(
color: Colors.black,
width: 3.0,
),
top: BorderSide(
color: Colors.black,
width: 3.0,
),
),
);
}
Promień graniczny
Te mają granic promienie 5
, 10
i 30
odpowiednio.
BoxDecoration myBoxDecoration() {
return BoxDecoration(
border: Border.all(
width: 3.0
),
borderRadius: BorderRadius.all(
Radius.circular(5.0)
),
);
}
Dziać się
DecoratedBox
/ BoxDecoration
są bardzo elastyczne. Przeczytaj ściągawkę Flutter - BoxDecoration, aby znaleźć wiele innych pomysłów.
Jak stwierdzono w dokumentacji, flutter przedkłada kompozycję nad parametry. W większości przypadków to, czego szukasz, nie jest właściwością, ale opakowaniem (a czasem kilku pomocników / „konstruktorów”)
W przypadku granic to, czego chcesz
DecoratedBox
, madecoration
właściwość definiującą granice; ale także obrazy tła lub cienie.Alternatywnie, jak powiedział @Aziza, możesz użyć
Container
. Który jest połączeniemDecoratedBox
,SizedBox
a kilka innych przydatnych widżetów.źródło
Najlepszym sposobem jest użycie BoxDecoration ()
Korzyść
Niekorzyść
BoxDecoration
używaj tylko zContainer
widżetem, więc chcesz zawinąć swój widżetContainer()
Przykład
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"), )
źródło
Używanie BoxDecoration () to najlepszy sposób na pokazanie obramowania.
Container( decoration: BoxDecoration( border: Border.all( color: Color(0xff000000), width: 4, )), child: //Your child widget ),
Możesz również wyświetlić pełny format tutaj
źródło
Możesz użyć kontenera, aby umieścić swój widżet:
Container( decoration: BoxDecoration( border: Border.all( color: Color(0xff000000), width: 1, )), child: Text() ),
źródło
Użyj pojemnika z Boxdercoration.
BoxDecoration( border: Border.all( width: 3.0 ), borderRadius: BorderRadius.circular(10.0) );
źródło