删除 Row 中两个 IconButton 之间的额外空间

Posted

技术标签:

【中文标题】删除 Row 中两个 IconButton 之间的额外空间【英文标题】:Remove extra space between two IconButton in ROw 【发布时间】:2020-05-28 22:04:32 【问题描述】:

我想删除 Row 小部件中两个 IconButton 之间的一些额外空间 我尝试了更多,但仍然无法删除小部件之间的空间

Column(
  children: <Widget>[
    Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: <Widget>[
        Text("Home",
          style: TextStyle(
            fontWeight: FontWeight.bold,
            fontSize: 15,
            color: Colors.black
          )
        ),
        Row(
          mainAxisAlignment: MainAxisAlignment.end,
          children: <Widget>[
            IconButton(
              icon: Icon(
                Icons.edit,
                color: Colors.black,
                size: 20,
              ),
              onPressed: () 
                IntelUtility.navigateToScreen(
                  context, EditHomeAddressScreen()
                );
              ,
            ),
            IconButton(
              icon: Icon(
                Icons.delete,
                color: Colors.black,
                size: 20,
              ),
              onPressed: () ,
            ),
          ],
        ),
      ],
    ),
  ],
),

请帮助解决这个问题,我遇到了麻烦:(

【问题讨论】:

我不认为它在两个 IconButtons 之间的额外空间 - 基本上两个图标都有一些填充,所以你必须删除那个“填充” - 确保从终端运行你的应用程序 flutter run 并按 @987654325 @键 实际上根据材质概念没有空间,触摸按钮需要空间,以便用户不会难以触摸所需的按钮。尝试触摸离子,您会看到悬停效果。 【参考方案1】:

而不是使用 IconButton, 你可以像这样使用 CupertinoButton:

CupertinoButton(
  minSize: double.minPositive,
  padding: EdgeInsets.zero,
  child: Icon(
    Icons.delete,
    color: Color.black,
    size: 20
  ),
  onPressed: () ,
)

【讨论】:

谢谢哥们太好了:)【参考方案2】:

将参数 padding: EdgeInsets.all(0) 添加到 IconButton。

IconButton(
          padding: EdgeInsets.all(0),
          icon: Icon(
            Icons.delete,
            color: Colors.black,
            size: 20,
          ),
          onPressed: () ,
        )

【讨论】:

【参考方案3】:

你的答案是 BoxConstraints

Row(
          mainAxisAlignment: MainAxisAlignment.end,
          children: <Widget>[
            IconButton(
              constraints: BoxConstraints.tight(Size.fromWidth(30)),
              icon: Icon(
                Icons.edit,
                color: Colors.black,
                size: 20,
              ),
              onPressed: () 
                IntelUtility.navigateToScreen(
                  context, EditHomeAddressScreen()
                );
              ,
            ),
            IconButton(
              constraints: BoxConstraints.tight(Size.fromWidth(30)),
              icon: Icon(
                Icons.delete,
                color: Colors.black,
                size: 20,
              ),
              onPressed: () ,
            ),
          ],
        ),

你可以随意更改constraints: BoxConstraints.tight(Size.fromWidth(30)),

【讨论】:

兄弟我怎么用这个?它向我显示错误未定义约束!!! 约束目前处于测试阶段,我认为 stable 和 master 也包含约束

以上是关于删除 Row 中两个 IconButton 之间的额外空间的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 如何用动画扩展小部件?

如何将文本对齐到 IconButton 小部件的中心底部?

Material UI IconButton onClick 不允许处理事件

删除颤振中两列之间的空间

如何在 Pandas 中删除两个数据框中的公共行?

codeigniter中两个日期之间的差异