zoukankan      html  css  js  c++  java
  • Flutter——Dart Extension扩展方法的使用

    dart的extension方法可以给已经存在的类添加新的函数,通过extension我们可以封装一些常用方法,提高开发效率。

    例一:扩展String

    给string添加一个log打印方法

    extension StringExt on String {
       void log() {
        print('--------$this');
      }
    }

    使用

    "there is something need to print".log();

     

    例二:扩展Widget

    iconfont中的图标有偏下的问题,添加一个iconCenter方法,使icon居中

    extension WidgetExt on Widget {
      Widget iconCenter(double size) {
        return Baseline(
          baselineType: TextBaseline.ideographic,
          baseline: size * 0.84,
          child: this,
        );
      }
    }

    使用

    Icon(KIconData.trash, size: 16.w, color: Colors.black).iconCenter(16.w),

     

    例三:扩展number

    例子同上一篇写的处理时间戳的例子(https://www.cnblogs.com/MaiJiangDou/p/14060017.html

    extension TimeExt on num {
      String get publishTime {
        var now = new DateTime.now();
        var longTime = this.toString().length < 13 ? this * 1000 : this;
        var time = new DateTime.fromMillisecondsSinceEpoch(longTime);
        var difference = now.difference(time);
        int days = difference.inDays;
        int hours = difference.inHours;
        int minutes = difference.inMinutes;
        String result = '';
        if (days > 3) {
          bool isNowYear = now.year == time.year;
          var pattern = isNowYear ? 'MM-dd' : 'yyyy-MM-dd';
          result = new DateFormat(pattern).format(time);
        } else if (days > 0) {
          result = '$days天前';
        } else if (hours > 0) {
          result = '$hours小时前';
        } else if (minutes > 0) {
          result = '$minutes分钟前';
        } else {
          result = '刚刚';
        }
        return result;
      }
    }

    使用,轻松获取发布时间

    1607260860000.publishTime();

    END------------------

    绿蚁新醅酒,红泥小火炉。 

    晚来天欲雪,能饮一杯无

  • 相关阅读:
    动手动脑,11.9
    《构建之法》读书笔记
    字符加密
    字符动手动脑
    河北重大技术需求开发第七版开发第五天
    河北重大技术需求开发第七版开发第四天
    河北重大技术需求开发第七版开发第三天
    河北重大技术需求开发第七版开发第二天
    hbase基本操作体会
    河北重大技术需求开发第七版开发第一天
  • 原文地址:https://www.cnblogs.com/MaiJiangDou/p/14094990.html
Copyright © 2011-2022 走看看