我正在构建一个Flutter 应用程序,其中很大一部分屏幕将被一个圆形按钮占据.

我已经try 了几种不同的方法来创建圆形按钮,但我总是遇到相同的问题:"可点击"区域实际上不是圆形的,而是矩形的.

以下是使用FloatingActionButton获得的示例:

Example

对于小尺寸的按钮来说,这并不是一个真正的问题——我甚至会说这在某种程度上是有帮助的——但在我的情况下,这是非常恼人的.

所以我的问题是:是否有可能将"可轻触"区域限制在一个圆圈内?

提前谢谢您.

推荐答案

这似乎行得通,我不知道这样做对不对,或者有没有更好的办法,但给你.

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
        color: Colors.blue,
        child: Center(
          child: GestureDetector(
            onTap: () {
              print('clicky');
            },
            child: ClipOval(
              child: Container(
                width: 200,
                height: 200,
                color: Colors.red,
              ),
            ),
          ),
        ),
      ),
    );
  }
}

Dart相关问答推荐

dart 日期时差(分钟)

dart - 通过异步等待避免递归 Stackoverflow

如何通过点击 BottomNavigationBarItem 以编程方式打开Drawer抽屉?

dart 中 call() 的实现是什么?

如何将 Dart 代码迁移到不可空 (NNBD)?

如何从 Flutter App 连接 Ms SQL?

如何在 Flutter 中更改 Html 小部件中的字体样式?

如何签署 Flutter 的应用程序

不要将 PageView 居中 - Flutter

使用Flutter/dart的NTLM身份验证

如何在dart中的多个文件中编写多个单元测试?

使用Flatter向Cloud Firestore添加对象

如何从 ExpansionTile 的标题中删除默认填充

将Flutter的 PageView 与屏幕左侧对齐

在 Dart 中发送 SMTP 邮箱

有 Javascript 到 Dart 的转换器吗?

如何使用 Dart 列出目录的内容?

Dart 有没有办法测量小代码的执行时间

如何停止 Dart 的 .forEach()?

如何在 Dart 中合并两个列表?