升级flutter后FlattButton图标中心问题

问题描述 投票:0回答:3

如何使这个箭头图标位于按钮的中心

看到图标的边缘是图标的中心,我想让flutter看到图标的中心是图标的中心

更多解释:

我的代码:

AppBar(
      backgroundColor: Colors.transparent,
      leading:
      // Here the code of the button
       SizedBox(
        height: getProportionateScreenHeight(20),
        width: getProportionateScreenWidth(10),
        child: Padding(
          padding: EdgeInsets.all(8),
          child: FlatButton(
            padding: EdgeInsets.zero,
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(12),
            ),
            color: Colors.white,
            onPressed: () {
              Navigator.pop(context);
            },
            child: Center(
              child: Icon(
                Icons.arrow_back_ios,
              ),
            ),
          ),
        ),
      ),
      // ....
      actions: [
        IconButton(
          icon: Icon(
            Icons.favorite,
            color: favFlag ? Colors.red : Colors.red[100],
          ),
          onPressed: () {
            setState(() {
              favFlag = !favFlag;
            });
          },
        ),
      ],
    );

在上次升级之前它一直在与我合作。

flutter flutter-layout
3个回答
0
投票

我认为

height
width
因子的使用存在一些问题。我对这些使用了简单的值,并且运行良好。
事实上,我删除了

SizedBox

小部件并没有这样的效果。我还在代码后面附上了图片:)

SizedBox

输出:


0
投票

appBar: AppBar( backgroundColor: Colors.transparent, leading: // Here the code of the button SizedBox( height: 20, width: 20, child: Padding( padding: EdgeInsets.all(8), child: FlatButton( padding: EdgeInsets.zero, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), color: Colors.white, onPressed: () { // Navigator.pop(context); }, child: Center( child: Icon( Icons.arrow_back_ios, ), ), ), ), ), actions: [ IconButton( icon: Icon( Icons.favorite, color: favFlag ? Colors.red : Colors.red[100], ), onPressed: () { setState(() { favFlag = !favFlag; }); }, ), ], ),

我已将其手动定位到中心,所以我更喜欢是否有另一个干净的短解决方案。


0
投票
AppBar( backgroundColor: Colors.transparent, // Here the code of the button leading: Padding( padding: EdgeInsets.all(8), child: FlatButton( padding: EdgeInsets.zero, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), color: Colors.white, onPressed: () { Navigator.pop(context); }, child: Stack( alignment: Alignment.center, children: [ Positioned.directional( textDirection: Directionality.of(context), end: 3, child: Icon( Icons.arrow_back_ios, ), ), ], ), ), ), // .... actions: [ IconButton( icon: Icon( Icons.favorite, color: favFlag ? Colors.red : Colors.red[100], ), onPressed: () { setState(() { favFlag = !favFlag; }); AdsService.listByPagination(); }, ), ], );

使用

Icons.arrow_back_ios,

应该有效

© www.soinside.com 2019 - 2024. All rights reserved.