BottomAppBar 中用于自定义 FAB 的缺口

2024-02-15

我在用着UnicornDialer来自独角兽 https://pub.dartlang.org/packages/unicorndial包在我的应用程序主页上创建 Material 快速拨号体验,但如果我设置shape属性来定义凹口,则凹口未正确绘制:

我注意到另一个包裹上(颤振速度拨号 https://pub.dartlang.org/packages/flutter_speed_dial)这被明确提到为不起作用:

SpeedDial 小部件被构建为放置在浮动操作按钮中 Scaffold 小部件的参数。无法设置其 使用 Scaffold.floatingActionButtonLocation 参数的位置 尽管。可以与 Scaffold.bottomNavigationBar 一起使用,但是 浮动按钮将放置在栏上方,而没有 可以用凹口放置。

如果是UnicornDialer返回的小部件build方法是标准FloatingActionButton并浏览了代码Scaffold and BottomAppBar我不明白为什么凹口会这样损坏。

我曾尝试使用标准 FAB(但透明)来创建凹口,然后包裹Scaffold and UnicornDialer in a Stack定位一切,效果很好,但是当你展示SnackBar the UnicornDialer不动,所以我又需要BottomAppBar正确处理自定义 FAB 以进行缺口计算。有任何想法吗?


您需要用容器包装 UnicornDialer 并控制缺口边距, 请注意 notchMargin 可以取负值,

似乎底部AppBar凹口的渲染器无法从原始 UnicornDialer 正确计算贝西尔曲线。

您可以使用以下代码作为指导。运作良好

import 'package:flutter/material.dart';
import 'package:unicorndial/unicorndial.dart';

void main() =>
    runApp(new MaterialApp(debugShowCheckedModeBanner: false, home: Example()));

class Example extends StatefulWidget {
  _Example createState() => _Example();
}

class _Example extends State<Example> {
  @override
  Widget build(BuildContext context) {
    var childButtons = List<UnicornButton>();

    childButtons.add(UnicornButton(
        hasLabel: true,
        labelText: "Choo choo",
        currentButton: FloatingActionButton(

          heroTag: "train",
          backgroundColor: Colors.redAccent,
          mini: true,
          child: Icon(Icons.train),
          onPressed: () {},
        )));

    childButtons.add(UnicornButton(
        currentButton: FloatingActionButton(
            heroTag: "airplane",
            backgroundColor: Colors.greenAccent,
            mini: true,
            child: Icon(Icons.airplanemode_active))));

    childButtons.add(UnicornButton(
        currentButton: FloatingActionButton(
            heroTag: "directions",
            backgroundColor: Colors.blueAccent,
            mini: true,
            child: Icon(Icons.directions_car))));

    return Scaffold(

      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
      bottomNavigationBar: new BottomAppBar(
        shape: CircularNotchedRectangle(),


        notchMargin: -10.0,

        color: Colors.blue,
        child: new Row(
          mainAxisSize: MainAxisSize.max,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: <Widget>[
            IconButton(
              icon: Icon(Icons.menu),
              onPressed: () {},
            ),
            IconButton(
              icon: Icon(Icons.search),
              onPressed: () {},
            ),
          ],
        ),
      ),
      //floatingActionButton: FloatingActionButton(onPressed: (){}),
      floatingActionButton: Container(
        width: 100.0,
        height: 100.0,
        child: UnicornDialer(
            hasNotch: true,
            //hasBackground: false,
            backgroundColor: Color.fromRGBO(255, 255, 255, 0.0),
            parentButtonBackground: Colors.redAccent,
            orientation: UnicornOrientation.VERTICAL,
            parentButton: Icon(Icons.add),
            childButtons: childButtons),
      ),
      appBar: AppBar(),
      body: Container(

        child: Center(
          child: RaisedButton(
            onPressed: () {
              setState(() {});
            },
          ),
        ),
      ),
    );
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BottomAppBar 中用于自定义 FAB 的缺口 的相关文章

随机推荐

  • 将小端文件转换为大端文件

    如何将小端二进制文件转换为大端二进制文件 我有一个用 C 编写的二进制文件 我正在使用 Java 中的 DataInputStream 读取这个文件 该文件以大端格式读取 我还查看了 ByteBuffer 类 但不知道如何使用它来获得我想要
  • 带有 Eclipse 和 WTP 插件的 Maven webapp 在 Tomcat 中以奇怪的方式部署文件

    我将 Eclipse J2EE 3 5 与 Maven 和 tomcat 结合使用 为了使用 WTP 部署我的 Maven Web 应用程序 我添加了动态 Web 模块方面并更改了项目的 org eclipse wst common com
  • 具有均匀大小内核的图像卷积

    我想执行简单的 2D 图像卷积 但我的内核大小均匀 我应该为我的内核中心选择哪些指数 我尝试在谷歌上搜索答案并查看现有代码 人们通常将其内核居中 这样在新的 0 之前就会多一个样本 因此 如果我们有一个 4x4 内核 则居中索引应该是 2
  • Android 自动翻译工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你知道有没有free自动本地化工具目前已退出市场 这将是从我的 android 项目翻译我的 XML
  • 如何使用 laravel 在 DOMPDF 中显示印地语字体?

    这是larval中的pdfblade文件 它给 在pdf文件中标记 section css
  • Django 查询超过 5 小时的对象的日期时间

    我正在尝试为 5 小时以上的小部件编写 Django 查询 但我有点迷失了 小部件模型有一个DateTimeField其中填充了小部件的创建时间 If Widget是模型的名称 它有一个名为的 DateTimeField 属性created
  • 如何区分 UIButton 回调操作的触发事件

    在为 UIButton 定义回调时 我列出了同一操作的多个事件 在目标中我希望能够区分触发回调的事件 button addTarget self action selector callback forControlEvents UICon
  • Android:从 SD 卡加载位图时出现“java-lang-outofmemoryerror-bitmap-size-exceeds-vm-budget-android”?

    在我的应用程序中 我必须使用 500x500 像素的小图像显示大约 10000 x 5000 的图像 即通过平铺图像 为了将所有图像平铺为一张 我首先从 SD 卡收集所有位图 以便在画布上绘制 但是当我使用外部存储加载图像时BitmapFa
  • Jquery:TableSorter-特定格式的日期不起作用

    我在用表格分类器 http tablesorter com docs 对表格进行排序的插件 第四列是日期字段 格式为 gt 2013 年 1 月 30 日 gt 2013 年 2 月 1 日 当我尝试对格式进行排序时 它给出了错误的排序 我
  • 在C#中执行Quser windows命令;将结果返回到字符串

    我试图通过 C 执行 Quser windows 命令来返回谁登录到服务器的详细信息 但无法让它工作 我尝试过使用一些指南 但我还没有看到任何适合这种情况的指南 此时命令返回以下内容 Microsoft Windows 版本 6 1 760
  • 42、42.0、“42.0”、“42”之间有什么区别吗

    在使用 Smart Match 测试我的 Perl 代码的过程中 我遇到了这个问题 42 42 0 42 0 42 之间有什么区别吗 var1 42 var2 42 0 a var1 var2 我正进入 状态 a为 0 意思是 var1 a
  • 替换 LinearLayout 权重机制

    背景 出于性能考虑 Google 建议避免使用嵌套加权线性布局 使用嵌套加权线性布局的读 写和维护都很糟糕 仍然没有好的替代方案来放置可用大小的 的视图 唯一的解决方案是权重和使用 OpenGL 甚至没有像 WPF Silverlight
  • 使用复制构造函数后双重释放子对象

    我无法弄清楚为什么 看起来 一个对象被破坏了两次 如果我创建一个类 B 的对象 其中包含另一个类 A 的对象 并且我复制该对象 复制的对象被破坏两次 虽然看起来是这样的 我无法弄清楚这个输出 我创建了以下 最小 示例 这似乎触发了我的问题
  • jQuery-UI 可拖动和可排序

    所以我一直在研究这个例子 http jqueryui com demos draggable sortable http jqueryui com demos draggable sortable我已经在我的产品上实现了这一点 然而我想做两
  • 如何设置 highcharts 中 x 轴标签的格式

    I have the following highchart output 我只想在 x 轴标签中看到 Feb 10 而不是 Feb 10 18 00 因此所有 xaxis 标签都将类似于 Feb 10 Feb 12 等 但工具提示将与输出
  • 有 Perl 的 ORM 吗?

    create table person name varchar 15 attr1 varchar 15 attr2 varchar 1 attr3 char 1 attr4 int 如何通过获取像上面这样的简单表并将其映射到 Perl 对
  • JAXB - 生成的类实现接口

    有没有办法配置JAXB http jaxb java net 以便生成的类实现指定的接口 我打算使用 JAXB 生成的类作为 DAO 它们应该能够实现我的 DAO 接口 不幸的是 看起来其他一些答案中提到的接口注入插件不再得到很好的支持 事
  • 我想将列表视图放在下拉底部

    该数据来自 API 我想将所有选项放入下拉列表中 有谁能够帮助我 我是 flutter 新手 仍在学习使用 这是我的代码 class ApiFipePageState extends State
  • 不小心删除了 /var/log/apache2 现在无法重新启动 apache [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 Ubuntu 14 04 apache2 和 ispconfig 3 就在几个小时前 我不小心删除了 var log apac
  • BottomAppBar 中用于自定义 FAB 的缺口

    我在用着UnicornDialer来自独角兽 https pub dartlang org packages unicorndial包在我的应用程序主页上创建 Material 快速拨号体验 但如果我设置shape属性来定义凹口 则凹口未正