Заполнение флаттера между границей и виджетом - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь использовать Flutter для создания виджета карты со значком и заголовком. Но я не могу добавить поле между границей карты и виджетом.

Вот мой код карты:

class MyCard extends StatelessWidget{
  MyCard({this.title, this.icon});

  final Widget title;
  final Widget icon;

  @override
  Widget build(BuildContext context) {
  return new Container(
    padding: EdgeInsets.only(bottom: 20.0),
    child: new Card(
      child: new Row(
        children: <Widget>[
          this.icon,
          new Container(
            width: 20.0, //I also don't know if this is legal
          ),
          this.title
        ]
      )
    )
    );
  }
}

Это результат, но я бы хотел, чтобы внутри карты было больше отступов, чтобы более высокие карты и значки были справа.

Result

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018
class MyCard extends StatelessWidget{
  MyCard({this.title, this.icon});

  final Widget title;
  final Widget icon;

  @override
  Widget build(BuildContext context) {
    return new Container(
        padding: EdgeInsets.only(bottom: 20.0),
        child: new Card(
            child: new Row(
                children: <Widget>[
//                  Change Your Code Here
                  new Padding(padding: new EdgeInsets.only(left: 8.0),child: this.icon,),
                  new Container(
                    width: 20.0, //I also don't know if this is legal
                  ),
                  this.title
                ]
            )
        )
    );
  }
}
0 голосов
/ 06 сентября 2018

Вы можете обернуть виджеты в карточку внутри Padding виджета или использовать свойство контейнера padding или margin для достижения желаемого макета.

P.S. Я добавил отступы на разных уровнях. Удалите или добавьте дополнительные отступы в соответствии с вашими потребностями.

Код:

class MyCard extends StatelessWidget{

 MyCard({this.title, this.icon});

  final Widget title;
  final Widget icon;

  @override
  Widget build(BuildContext context) {
    return new Container(
        padding: EdgeInsets.only(bottom: 20.0),
        child: new Card(
            child: Padding(
              padding: EdgeInsets.symmetric(vertical: 2.0),
              child: new Row(
                  children: <Widget>[
                    Padding(
                      padding: EdgeInsets.symmetric(horizontal: 5.0),
                      child: this.icon,
                    ),
                    new SizedBox(
                      width: 20.0,
                    ),
                    Container(
                      padding: EdgeInsets.symmetric(vertical: 0.5, horizontal: 1.0),
                      margin: EdgeInsets.all(2.0),
                      child: this.title,
                    )
                  ]
              ),
            )
        )
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...