flutter - 如何使库比蒂诺图标在 flutter 中居中?

标签 flutter flutter-cupertino

首先,我尝试过使用Center(), 这样一来,cupertino 的图标似乎就偏离了中心

             IconButton(
              icon: const Icon(
                CupertinoIcons.add_circled,
                color: Colors.black,
              ),
              padding: const EdgeInsets.all(0),
              onPressed: () {}
              ),

将图标直接包装在 Center() 小部件中也不会改变任何东西,这就是它的外观 slightly off center

最佳答案

CupertinoIcons 实际上以 Flutter 为中心。

如果您查看 Cupertino 的源图标 map here您会看到图标与 Flutter 加载的正方形内的底部对齐(甚至略微向左对齐)。因此,您无法在代码中调整它的对齐方式,因为资源已经居中。

enter image description here

更新

我更进一步,在 Flutter sdk 源码上找到了 CupertinoIcons.ttf 字体。然后用 https://www.glyphrstudio.com 打开它.

enter image description here

然后对 MaterialIcons-Regular.ttf 做同样的事情

enter image description here

您可以清楚地看到图标是如何与 Cupertino 上的基线对齐的(就像字符在任何字体上所做的那样),并且完全居中于 Material 上(就像图标应该那样)。

this Medium article 上有更多关于字体度量的信息

您可以在此处找到 CupertinoIcons.ttf:https://github.com/flutter/cupertino_icons/tree/master/assets

关于flutter - 如何使库比蒂诺图标在 flutter 中居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55164480/

相关文章:

dart - 如何将对象列表添加到 Firestore?

android - 我想重新创建这个 UI,但我不知道如何塑造这个按钮 (Flutter)

flutter - 将Stack的子级移到屏幕底部

flutter - 如何在 flutter 中使用按钮重启应用程序

flutter - 如何在 Flutter 中更新现有文件(Path_Provider)

flutter - 如何在 Flutter 中使用大标题导航栏?

ios - 为什么 Flutter 的 CupertinoNavigationBar 与 CupertinoPageScaffold 中的子项重叠?

flutter - 向 ListView 添加垂直和水平滚动

flutter - 如何仅在调用 onPressed 时更改 CupertinoButton 背景颜色

flutter - 我怎样才能改变 CupertinoDatePicker 的背景颜色