如何让AppBar与Body中的IconButton保持相同列宽?
方案一:给Body的IconButton添加对应内边距
AppBar中的IconButton默认会继承主题的toolbarActionSpacing作为水平内边距,给Body里的IconButton添加相同内边距,即可对齐列宽,同时保留默认splash radius:
IconButton( padding: EdgeInsets.symmetric( horizontal: Theme.of(context).toolbarActionSpacing, ), icon: Icon(Icons.settings), onPressed: () {}, // 不指定splashRadius,自动使用Flutter默认值 )
方案二:自定义AppBar的Action容器(按需选择)
如果不想给Body按钮加内边距,也可以移除AppBar中IconButton的默认内边距,让它和Body按钮保持一致:
AppBar( actions: [ Padding( padding: EdgeInsets.zero, // 清除AppBar默认的Action内边距 child: IconButton( icon: Icon(Icons.search), onPressed: () {}, ), ), ], )
优先推荐方案一,它遵循Flutter主题设计规范,既能对齐列宽,又保留了AppBar的原生布局逻辑。
内容的提问来源于stack exchange,提问作者Fritz A
相关产品推荐
相关产品推荐

