flutter 填坑

  • TextField 在iOS垂直方向上不居中
// isDense是否為密集形式(使用較少垂直空間),默認(rèn)為false
在 InputDecoration 中添加 isDense = true 
  • TextField 鍵盤彈出導(dǎo)致ListView 頁(yè)面卡頓
當(dāng)鍵盤彈出的時(shí)候,會(huì)將 listview 縮短重建
因此當(dāng)listView數(shù)據(jù)很大的時(shí)候,容易卡頓
  ----------
把Scaffold的resizeToAvoidBottomInset屬性設(shè)置為false,
這樣在鍵盤彈出時(shí)將不會(huì)resize
  • 軟鍵盤彈起后遮擋輸入框
將輸入框放進(jìn)可滾動(dòng)的Widget中即可,當(dāng)輸入框獲取焦點(diǎn)后,系統(tǒng)會(huì)自動(dòng)將它滑動(dòng)到可視區(qū)域
  • 語(yǔ)法

三目運(yùn)算 ?? / ??= 用來(lái)判斷 null的 不是bool

type: type_param ?? 0
在 widget中 給屬性賦值 如果 type_param == null 會(huì)將 0 賦值給 type
  • 獲取狀態(tài)欄高度
final double statusBarHeight = MediaQuery.of(viewService.context).padding.top;
  • 命名路由

http://www.lxweimin.com/p/3b105658728e

路由的跳轉(zhuǎn)時(shí)調(diào)用 Navigator.pushNamed:
Navigator.of(context).pushNamed('/new');

這里有一個(gè)問(wèn)題就是使用 Navigator.pushNamed 時(shí)無(wú)法直接給新頁(yè)面?zhèn)鲄?shù),目前在 onGenerateRoute 回調(diào)中利用 URL 參數(shù)自行處理。
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);
},

// 通過(guò) URL 傳遞參數(shù)
Navigator.of(context).pushNamed('/new/xxx');

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。