栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Flutter 生成 Icon 提示徽标 Widget

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flutter 生成 Icon 提示徽标 Widget

       程序中有时为了向用户提供一些附加状态,常在 Icon 的角上用附加图标来展示,如比较常见的数字红点徽标,我们今天并不实现红点徽标,而是用缩小的 Icon 做提示徽标,以展示其它的一些状态,如“蘑菇仪表”app中就有一个 IconButton 按钮左上角和右上角各有一个徽标分别指示定时记录和报警记录已打开。示例图如下:

 

       Flutter 并没有提供现成的 Icon 提示徽标 Widget,当然可以用第三方库来实现,但用现成的轮子有时也并不一定方便,其实实现这个功能非常简单。只要用 Stack 和 Positioned 就可以轻松搞定,代码如下:

  /// 生成带上标徽章的 Icon
  /// icondata - IconData 类型,包含 Icon 图标数据
  /// sups - List 类型,包含上标 Icon 图标数据的数组
  /// color - Color 类型,指定上标徽章颜色
  Widget supIcon(IconData icondata, List sups,{color=Colors.yellow}) {
    List _pos = [Icon(icondata)];
    for (var i = 0; i < sups.length; i++) {
      if (sups[i] != null) {
        _pos.add(
          Positioned(
              top: i == 0 || i == 1 ? -6.0 : null,
              left: i == 0 || i == 3 ? -6.0 : null,
              right: i == 1 || i == 2 ? -6.0 : null,
              bottom: i == 2 || i == 3 ? -6.0 : null,
              child: Icon(
                sups[i],
                size: 16,
                color: color,
              )),
        );
      }
    }

    return Stack(
        clipBehavior: Clip.none,
        children: _pos
        );
  }

代码很简单,却实现了四个角的徽标。调用代码也比较简单,这里就不熬术了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735478.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号