Как сделать так, чтобы некоторые значки на панели приложений были с разным выравниванием?

Я столкнулся с какой-то проблемой. Я хочу сделать изображение, текст и две иконки в AppBar, но я не могу заставить его работать так, как я хочу.

Я попытался сделать несколько шрифтов подряд после изображений и текста. Изображения и текст успешно отображаются в моем AppBar, но остальные 2 шрифта (тележка и уведомления) показывают некоторую ошибку.

Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: Colors.amber,  
      appBar: new AppBar
        (
        title: new Row
          (
          mainAxisAlignment: MainAxisAlignment.start,
            children:
            [
              Image.asset('images/logoapp.png',fit: BoxFit.contain,height: 32,), 
              Container(padding: const EdgeInsets.all(8.0), child: Text('Solid Shop'))
            ],
          )

        ),

....


person Roman Traversine    schedule 29.03.2019    source источник


Ответы (3)


Используйте leading, чтобы установить виджет перед заголовком appBar, и используйте actions, чтобы указать список виджетов в appBar, который отображается справа от заголовка appBar.

AppBar(
    leading: Image.asset('yourImage'), // you can put Icon as well, it accepts any widget.
    title: Text ("Your Title"),
    actions: [
        Icon(Icons.add),
        Icon(Icons.add),
    ],
);

Подробнее об этом здесь

person Tirth Patel    schedule 29.03.2019

Вам нужно использовать actions вместо title

actions: <Widget>[
          Image.asset('images/logoapp.png',fit: BoxFit.contain,height: 32,), 
              Container(padding: const EdgeInsets.all(8.0), child: Text('Solid Shop')),

          Image.asset('images/logoapp.png',fit: BoxFit.contain,height: 32,), // here add notification icon
              Container(padding: const EdgeInsets.all(8.0), child: Text('Solid Shop')) // here add other icon
        ],
person Taym95    schedule 29.03.2019
comment
Большое спасибо мистеру @Taym за ваш ответ. Я попробовал ваше предложение, и оно у меня работает. но произошло что-то не так. возможно, это вызвано слишком большими изображениями, которые я поместил ... это выглядит не очень хорошо. но я попробую как сделать так, чтобы он хорошо смотрелся :) - person Roman Traversine; 01.04.2019

Вы можете добавить значок, а также изображение на панель приложения, этот код работает для меня: -

appBar: AppBar (

    centerTitle: true,

    elevation: 2,

    title: Center(

      child: Row(

        mainAxisAlignment: MainAxisAlignment.center,

        children: [

          Image.asset(

            "assets/images/bell.png",

            fit: BoxFit.contain,

            height: 28,

          ),

          Container(

            child: Text("  APP BAR"),

          )

        ],

      ),

    ),

    actions: [

      IconButton(

        icon: Icon(Icons.settings),

        onPressed: () {

          Navigator.push(

            context,

            MaterialPageRoute(

              builder: (context) {

                return Settings();

              },

            ),

          );

        },

        color: Colors.white,
      )

    ],

  ),

Надеюсь, это было полезно.

person M A Hafeez    schedule 28.01.2021