Próbuję dodać wyściółkę do tekstu na karcie i z jakiegoś powodu nie działa.

To jest mój kod:

Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          new Container(
            height: 170.0,
            child: Card(
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  ListTile(
                    leading: Icon(Icons.phone),
                    title: Align(
                      child: Text('Need immediate help'),
                      alignment: Alignment(-1.2, 1.0),
                    ),
                    subtitle: Column(
                      children: <Widget>[
                        Align(
                          child: Text('In an emergency, call 999.'),
                          alignment: Alignment(-1.2, 0),
                        ),
                        Align(
                          child: Text(
                              "If you're in crisis and need to speak to someone call NHS 111."),
                          alignment: Alignment(-1.2, 0),
                        ),
                      ],
                    ),
                  ),
                  ButtonBar(
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                      ButtonTheme(
                        minWidth: 150.0,
                        child: RaisedButton(
                          padding: EdgeInsets.all(8.0),
                          child: const Text('999'),
                          onPressed: () => launch("tel://000"),
                        ),
                      ),
                      ButtonTheme(
                        minWidth: 150.0,
                        child: RaisedButton(
                          padding: EdgeInsets.all(8.0),
                          child: const Text('111'),
                          onPressed: () => launch("tel://000"),
                        ),
                     

Obecnie wygląda to tak:

enter image description here

Chcę dodać wyściółkę wokół tekstu, więc wygląda lepiej, ale użycie wyrównania nie wpływają na drugiego napisów i nie wpływa na wyściółkę powyżej lub poniżej żadnego z tekstu. Każda pomoc byłaby doceniana!

0
ajnabz 24 styczeń 2021, 00:06

1 odpowiedź

Najlepsza odpowiedź

Zmień mainAxisAlignment właściwość swojej kolumny jako następującej i usuń mainAxisSize nieruchomość

Column(
  mainAxisAlignment: MainAxisAlignment.center,
  // ...
),

edytuj
Dostosuj podobny napis

ListTile(
  leading: Icon(Icons.phone),
  title: Align(
    child: Text('Need immediate help'),
    alignment: Alignment(-1.2, 1.0),
  ),
  subtitle: Align(
    alignment: Alignment(- 65.0, 1.0),
    child: Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Text('In an emergency, call 999.', textAlign: TextAlign.left,),
        Text("If you're in crisis and need to speak to someone call NHS 111.", textAlign: TextAlign.left,),
      ],
    ),
  ),
),
1
dm_tr 23 styczeń 2021, 21:49