如何在Appbar中居中放置图像

时间:2020-04-13 10:55:11

标签: flutter

我想在appbar中居中放置图像(就像Twitter在其mobilapps中一样),但是我找不到任何能做到这一点的逻辑。我试图用Center()包装容器,但是没有用。

@override
Widget build(BuildContext context) {
return Scaffold(
  resizeToAvoidBottomInset: false,
  appBar: AppBar(
    title: Text('Cranes'),
    actions: <Widget>[
      Container(
         //  margin: const EdgeInsets.only(right: 75),
          child: Image.asset(
            'assets/hmf_logo_medium.png',
          ),
        ),

      FlatButton(
        onPressed: () async {
          await Provider.of<FlutterSecureStorage>(context, listen: false)
              .deleteAll();
          Navigator.of(context).pushAndRemoveUntil(
              MaterialPageRoute(builder: (context) => LoginPage()),
              (route) => false);
        },
        child: Text(S.of(context).craneListPageLogoutText,
            style: TextStyle(color: Colors.white)),
      )
    ],
  ),
); }

3 个答案:

答案 0 :(得分:0)

尝试一下

AppBar(
  leading: Center(
    child: Text('Cranes'),
  ),
  title: Image.asset('assets/hmf_logo_medium.png'),
  centerTitle: true,
)

答案 1 :(得分:0)

您可以用行包装所有项目,然后mainAxisAlignment.spaceBetween可以处理。

AppBar(
                        title:
                          Row(
                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
                            children: <Widget>[
                              Text('Cranes'),
                              Container(
                                //  margin: const EdgeInsets.only(right: 75),
                                child: Image.asset(
                                 'assets/hmf_logo_medium.png',
                                ),
                              ),
                              FlatButton(
                                onPressed: () async {},
                                child: Text(S.of(context).craneListPageLogoutText,
        style: TextStyle(color: Colors.white)),
                              )
                            ],
                          ),
                      ),

答案 2 :(得分:0)

以下方法可行:

AppBar(
      title: Row(
           mainAxisAlignment: MainAxisAlignment.spaceBetween,
           children: [
                Text('Cranes'),
                Image.asset(
                  'assets/logo.png',
                  fit: BoxFit.contain,
                  height: 32,
              ),
              Container()
            ],

          ),
  )

结果:

enter image description here