2017-05-18 3 views
2

Ich versuche, einige Text und Symbole in einem Kartenwidget oben und unten mit einer Auffüllung zu versehen. Ich habe festgestellt, dass das Flattern eine einfache Möglichkeit bietet, dies für Container zu tun, aber es scheint keinen Weg zu finden, dies mit anderen Widgets zu tun (außer das Wrapping in einem Container). Dies ist der Code, den ich bisher habe:Flattern Padding für alle Widgets?

body: new Container(
    padding: new EdgeInsets.all(10.0), 
    child: new Column(
     crossAxisAlignment: CrossAxisAlignment.stretch, 
     children: <Widget> [ 
     new Card(
      color: Colors.white70, 
      child: new Container(
      padding: new EdgeInsets.all(10.0), 
      child: new Column(
       mainAxisAlignment: MainAxisAlignment.spaceBetween, 
       crossAxisAlignment: CrossAxisAlignment.center, 
       children: <Widget> [ //Padding between these please 
       new Text("I love Flutter", style: new TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)), 
       new Icon(Icons.favorite, color: Colors.redAccent, size: 50.0) 
       ] 
      ) 
     ) 
     ) 
     ] 
    ) 
) 

Also meine Kinder Spalte, ich mag etwas Padding nach oben und unten hinzuzufügen, ohne einen neuen Container einlegen zu müssen. Ist das möglich?

Antwort

5

Sie können Padding verwenden, die eine sehr einfache Widget ist, die wie die einander Widget als child und ein EdgeInsets Objekt, das Sie als padding verwenden bereits dauert nur.

Dieser Ansatz der "Komposition über Vererbung" in Flutter ist sehr beabsichtigt. Sie können eine aktuelle Diskussion über die Vor- und Nachteile auf Flutters Gitter channel finden.

+0

Das hat perfekt funktioniert. Ich bin gerade auf die Dokumente gestoßen und habe festgestellt, dass die Verwendung eines Containers oder einer Polsterung keinen großen Unterschied macht. Es scheint mir einfacher, Padding für ein Widget ohne Kinder wie Text oder Icon zu verwenden! Vielen Dank :) –