Flutter 的一些小技巧
1. 获取状态栏高度
import 'dart:ui';
MediaQueryData.fromWindow(window).padding.top
2. 设置AppBar的高度
Scaffold(
appBar: PreferredSize(
child: AppBar(
),
preferredSize: Size.fromHeight(screenSize.height * 0.07))
);
3. 系统默认的AppBar、TabBar高度
在Dart Packages/flutter/src/material/constans.dart
/// The height of the toolbar component of the [AppBar].
const double kToolbarHeight = 56.0; /// The height of the bottom navigation bar.
const double kBottomNavigationBarHeight = 56.0; /// The height of a tab bar containing text.
const double kTextTabBarHeight = 48.0; /// The amount of time theme change animations should last.
const Duration kThemeChangeDuration = Duration(milliseconds: ); /// The radius of a circular material ink response in logical pixels.
const double kRadialReactionRadius = 20.0; /// The amount of time a circular material ink response should take to expand to its full size.
const Duration kRadialReactionDuration = Duration(milliseconds: ); /// The value of the alpha channel to use when drawing a circular material ink response.
const int kRadialReactionAlpha = 0x1F; /// The duration of the horizontal scroll animation that occurs when a tab is tapped.
const Duration kTabScrollDuration = Duration(milliseconds: ); /// The horizontal padding included by [Tab]s.
const EdgeInsets kTabLabelPadding = EdgeInsets.symmetric(horizontal: 16.0); /// The padding added around material list items.
const EdgeInsets kMaterialListPadding = EdgeInsets.symmetric(vertical: 8.0);
4. 获取当前时间戳
var now = new DateTime.now();
print(now.millisecondsSinceEpoch); //单位毫秒,13位时间戳 /** 或者 */
/** 返回当前时间戳 */
static int currentTimeMillis() {
return new DateTime.now().millisecondsSinceEpoch;
}
5.时间戳转化成日期
var now = new DateTime.now();
var a=now.millisecondsSinceEpoch; //时间戳
print(DateTime.fromMillisecondsSinceEpoch(a));
6. 获取控件大小和相对屏幕位置
.首先先需要对控件进行渲染
初始化GlobalKey :GlobalKey anchorKey = GlobalKey(); .在需要测量的控件的下面添加key:
child: Text("点击弹出悬浮窗",
style: TextStyle(fontSize: ),
key: anchorKey
), .获取控件的坐标:
RenderBox renderBox = anchorKey.currentContext.findRenderObject();
var offset = renderBox.localToGlobal(Offset.zero); 控件的横坐标:offset.dx
控件的纵坐标:offset.dy 如果想获得控件正下方的坐标:
RenderBox renderBox = anchorKey.currentContext.findRenderObject();
var offset = renderBox.localToGlobal(Offset(0.0, renderBox.size.height)); 控件下方的横坐标:offset.dx
控件下方的纵坐标:offset.dy .获取控件的大小:
RenderBox renderBox = anchorKey.currentContext.findRenderObject();
final size = renderBox.size;
7.有网络请求的地方基本上就有md5
dart有内置的md5加密包,先引入头文件:
import 'dart:convert';
import 'package:convert/convert.dart';
import 'package:crypto/crypto.dart';
md5加密方法:
// md5 加密
String generateMd5(String data) {
var content = new Utf8Encoder().convert(data);
var digest = md5.convert(content);
// 这里其实就是 digest.toString()
return hex.encode(digest.bytes);
}
8. flutter 引入图片资源
可以单个图片引入,也可以整个文件夹引入
Flutter 的一些小技巧的更多相关文章
- 前端网络、JavaScript优化以及开发小技巧
一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...
- Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具
前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...
- 分享两个BPM配置小技巧
1.小技巧 流程图修改后发布的话版本号会+1,修改次数多了之后可能会导致版本号很高,这个时候可以将流程导出,然后删除对应的流程包再导入,发布数据模型和流程图之后,版本清零 2.小技巧 有的同事入职后使 ...
- linux系统维护时的一些小技巧,包括系统挂载新磁盘的方法!可收藏!
这里发布一些平时所用到的小技巧,不多,不过会持续更新.... 1.需要将history创建硬链接ln 全盘需要备份硬链接 ln /etc/xxx /home/xxx 2.root用户不可以远程 /et ...
- JS处理事件小技巧
今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...
- iOS:小技巧(不断更新)
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...
- css小技巧(1)
1.-webkit-overflow-scrolling: touch; 解决ios滑动时无缓冲问题 2.::-webkit-scrollbar 设置ios滑动时是否显示滚动条 3.::selecti ...
- 最强 Android Studio 使用小技巧和快捷键
写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...
- ios开发中的小技巧
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...
随机推荐
- 前端笔记-css
css(穿着) 1. 第一种<head><style></style></head>中可以写css样式 css选择器 定位到哪个标签的css id选择器 ...
- error: RPC failed; curl 18 transfer closed with outstanding read data remaining
报错: error: RPC failed; curl 18 transfer closed with outstanding read data remaining fatal: The remot ...
- (四)AppScan用外部设备(ios,安卓)录制app脚本进行安全测试
一.打开AppScan,选择外部设备/客户机,点击下 二.记录代理设置,可以手动输入需要的端口号,也可以自动选择. 手机配置代理: 1.连接wifi 2.找到该wifi--高级设置--配置代理: 三. ...
- linux实操_shell位置参数变量
基本语法: 脚本内容: 输出效果:
- P4148 简单题 k-d tree
思路:\(k-d\ tree\) 提交:2次 错因:整棵树重构时的严重错误:没有维护父子关系(之前写的是假重构所以没有维护父子关系) 题解: 遇到一个新的点就插进去,如果之前出现过就把权值加上. 代码 ...
- 安裝PHPBB
1.下載PHPBB https://www.phpbb.com/downloads/ 2下載PHP http://windows.php.net/download/ 很多教程都介紹在WIN7用ISAP ...
- bzoj 3551
按照困难度升序排序Kruskal重构树这样一来一个点的子树中的所有困难值都小于改点的困难值对于每次询问倍增找出困难值最大且小于x的点该点的子树中的第k大就是询问的答案主席书维护区间k大 #includ ...
- qtableview 表格风格设置
1.窗体无边框? tableView->setFrameShape(QFrame::NoFrame); 2.表格内容无边框? tableView->setShowGrid(false); ...
- iOS测试-如何指标量化app耗电量和性能XCTest Metrics
对于app端的专项测试,Android端我们可以用adb或者一些三方工具进行(例如itest)进行实时的性能监控,iOS端的话也可以用用一些三方的工具,但是需要嵌入到我们的项目当中,今天来介绍下Xco ...
- iTerm2 半透明颜色主题与字体配置
下载iTerm2https://www.iterm2.com/ 安装. 下载这个主题https://raw.githubusercontent.com/mbadolato/iTerm2-Color-S ...