几个Flutter开发中的常用函数
/** 返回当前时间戳 */ static int currentTimeMillis() { return new DateTime.now().millisecondsSinceEpoch; } /** 复制到剪粘板 */ static copyToClipboard(final String text) { if (text == null) return; Clipboard.setData(new ClipboardData(text: text)); } static const RollupSize_Units = ["GB", "MB", "KB", "B"]; /** 返回文件大小字符串 */ static String getRollupSize(int size) { int idx = 3; int r1 = 0; String result = ""; while (idx >= 0) { int s1 = size % 1024; size = size >> 10; if (size == 0 || idx == 0) { r1 = (r1 * 100) ~/ 1024; if (r1 > 0) { if (r1 >= 10) result = "$s1.$r1${RollupSize_Units[idx]}"; else result = "$s1.0$r1${RollupSize_Units[idx]}"; } else result = s1.toString() + RollupSize_Units[idx]; break; } r1 = s1; idx--; } return result; }
/** 返回两个日期相差的天数 */ static int daysBetween(DateTime a, DateTime b, [bool ignoreTime = false]) { if (ignoreTime) { int v = a.millisecondsSinceEpoch ~/ 86400000 - b.millisecondsSinceEpoch ~/ 86400000; if (v < 0) return -v; return v; } else { int v = a.millisecondsSinceEpoch - b.millisecondsSinceEpoch; if (v < 0) v = -v; return v ~/ 86400000; } }
/** 获取屏幕宽度 */ static double getScreenWidth(BuildContext context) { return MediaQuery.of(context).size.width; } /** 获取屏幕高度 */ static double getScreenHeight(BuildContext context) { return MediaQuery.of(context).size.height; } /** 获取系统状态栏高度 */ static double getSysStatsHeight(BuildContext context) { return MediaQuery.of(context).padding.top; }