flutter 填坑

  • TextField 在iOS垂直方向上不居中
// isDense是否为密集形式(使用较少垂直空间),默认为false
在 InputDecoration 中添加 isDense = true 
  • TextField 键盘弹出导致ListView 页面卡顿
当键盘弹出的时候,会将 listview 缩短重建
因此当listView数据很大的时候,容易卡顿
  ----------
把Scaffold的resizeToAvoidBottomInset属性设置为false,
这样在键盘弹出时将不会resize
  • 软键盘弹起后遮挡输入框
将输入框放进可滚动的Widget中即可,当输入框获取焦点后,系统会自动将它滑动到可视区域
  • 语法

三目运算 ?? / ??= 用来判断 null的 不是bool

type: type_param ?? 0
在 widget中 给属性赋值 如果 type_param == null 会将 0 赋值给 type
  • 获取状态栏高度
final double statusBarHeight = MediaQuery.of(viewService.context).padding.top;
  • 命名路由

https://www.jianshu.com/p/3b105658728e

路由的跳转时调用 Navigator.pushNamed:
Navigator.of(context).pushNamed('/new');

这里有一个问题就是使用 Navigator.pushNamed 时无法直接给新页面传参数,目前在 onGenerateRoute 回调中利用 URL 参数自行处理。
onGenerateRoute: (RouteSettings settings) {
  WidgetBuilder builder;
  if (settings.name == '/') {
    builder = (BuildContext context) => new ArticleListScreen();
  } else {
    String param = settings.name.split('/')[2];
    builder = (BuildContext context) => new NewArticle(param);
  }

  return new MaterialPageRoute(builder: builder, settings: settings);
},

// 通过 URL 传递参数
Navigator.of(context).pushNamed('/new/xxx');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。