Как убрать лишние отступы вокруг ведущего значка AppBar во Flutter - PullRequest
0 голосов
/ 22 мая 2018

В моем приложении Flutter у меня есть этот AppBar

Widget setAppBar(){
  return new AppBar(
    title: addAppBarTextWidget('Explore'),
    elevation: 0.0,
    leading: addLeadingIcon(),
    actions: <Widget>[
      addAppBarActionWidget(Constant.iconNotification, 22.0, 16.0, 8.0),
      addAppBarActionWidget(Constant.iconProfile, 30.0, 30.0, 15.0)
    ],
  );
}

Widget addLeadingIcon(){
  return new Container(
    height: 25.0,
    width: 25.0,
    padding: const EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 0.0),
    margin: const EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 0.0),
    child: new Stack(
      alignment: AlignmentDirectional.center,
      children: <Widget>[
        new Image.asset(
          Constant.iconNotification,
          width: 25.0,
          height: 25.0,
        ),
        new FlatButton(
            onPressed: (){
              onLeadingShowCategoryClick();
            }
        )
      ],
    ),
  );
}

это выглядит так:

enter image description here

Как видно на панели приложений, вокруг ведущего значка есть несколько дополнительных отступов.Как я могу удалить этот дополнительный отступ.

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Просто добавьте свойство с именем titleSpacing,

Пример

appBar: new AppBar(
        leading: new Icon(Icons.android),
        titleSpacing: 0.0,
        title: new Text(widget.title),
      ),
0 голосов
/ 22 мая 2018

Если вы используете виджеты из пакета материалов, они определяются в соответствии со спецификацией дизайна материалов документ .Поэтому, если ваша модификация нарушает эту спецификацию, вы должны создать свой собственный виджет вместо использования виджетов материалов.

0 голосов
/ 22 мая 2018

Вы не можете сделать это, потому что это предопределенный виджет.Однако вы можете сделать это:

appBar: AppBar(
  automaticallyImplyLeading: false, // Don't show the leading button
  title: Row(
    mainAxisAlignment: MainAxisAlignment.start,
    crossAxisAlignment: CrossAxisAlignment.center,
    children: <Widget>[
      IconButton(
        onPressed: () => Navigator.pop(context),
        icon: Icon(Icons.arrow_back, color: Colors.white),
      ),
      // Your widgets here
    ],
  ),
),

Где automaticallyImplyLeading: true скрывает ведущий IconButton, поэтому вы можете добавить свои собственные виджеты.

...