Flutter 模態(tài)框dialog方式彈出鍵盤不遮擋輸入框

PS: 接觸Flutter已經(jīng)有一段時(shí)間了小渊,默默的擼app也快接近尾聲了,其中遇到了蠻多坑(或許也不叫做坑卖氨,只是功夫不夠深^^),不過感覺都有驚無險(xiǎn)的度過了负懦。然鵝筒捺,小白的開拓之路注定是坎坷的,這不又遇到難題了纸厉。系吭。】牌罚“在模態(tài)框里有輸入框彈出鍵盤”肯尺,首先想的是用系統(tǒng)提供的showModalBottomSheet,然而躯枢,因?yàn)楦叨鹊南拗圃蛞鳎斎肟蜃⒍ū绘I盤擋住, 那腫么辦呢闺金。逾滥。。經(jīng)過一系列嘗試終于找到辦法了败匹,分享下解決方案:

  • 國際慣例
input.gif
  • 先創(chuàng)建一個(gè)帶輸入框的半透明的頁面
import 'package:flutter/material.dart';

class BottomInputDialog extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: Colors.transparent,
      body: new Column(
        children: <Widget>[
          Expanded(
              child: new GestureDetector(
                child: new Container(
                  color: Colors.black54,
                ),
                onTap: () {
                  Navigator.pop(context);
                },
              )
          ),
          new Container(
              height: 50,
              color: Colors.white,
              child: TextField(
                autofocus: true,
                maxLines: 100,
              )
          )
        ],
      ),
    );
  }
}
  • 關(guān)鍵:代碼跳轉(zhuǎn)上面半透明頁面時(shí)選擇自定義的Route, 代碼如下:
import 'package:flutter/material.dart';

class PopRoute extends PopupRoute{
  final Duration _duration = Duration(milliseconds: 300);
  Widget child;

  PopRoute({@required this.child});

  @override
  Color get barrierColor => null;

  @override
  bool get barrierDismissible => true;

  @override
  String get barrierLabel => null;

  @override
  Widget buildPage(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) {
    return child;
  }

  @override
  Duration get transitionDuration => _duration;

}
  • 調(diào)用方式很簡單寨昙,
Navigator.push(context, PopRoute(child: BottomInputDialog()));

本文僅展示一個(gè)簡單示例,可根據(jù)實(shí)際情況封裝掀亩,希望對讀者有幫助舔哪。。槽棍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捉蚤,一起剝皮案震驚了整個(gè)濱河市抬驴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缆巧,老刑警劉巖布持,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陕悬,居然都是意外死亡题暖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門捉超,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胧卤,“玉大人,你說我怎么就攤上這事拼岳≈μ埽” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵惜纸,是天一觀的道長叶撒。 經(jīng)常有香客問我,道長耐版,這世上最難降的妖魔是什么痊乾? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮椭更,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛾魄。我一直安慰自己虑瀑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布滴须。 她就那樣靜靜地躺著舌狗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扔水。 梳的紋絲不亂的頭發(fā)上痛侍,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機(jī)與錄音魔市,去河邊找鬼主届。 笑死,一個(gè)胖子當(dāng)著我的面吹牛待德,可吹牛的內(nèi)容都是我干的君丁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼将宪,長吁一口氣:“原來是場噩夢啊……” “哼绘闷!你這毒婦竟也來了橡庞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤印蔗,失蹤者是張志新(化名)和其女友劉穎扒最,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體华嘹,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吧趣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了除呵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片再菊。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖颜曾,靈堂內(nèi)的尸體忽然破棺而出纠拔,到底是詐尸還是另有隱情,我是刑警寧澤泛豪,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布稠诲,位于F島的核電站,受9級特大地震影響诡曙,放射性物質(zhì)發(fā)生泄漏臀叙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一价卤、第九天 我趴在偏房一處隱蔽的房頂上張望劝萤。 院中可真熱鬧,春花似錦慎璧、人聲如沸床嫌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厌处。三九已至,卻和暖如春岁疼,著一層夾襖步出監(jiān)牢的瞬間阔涉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工捷绒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瑰排,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓疙驾,卻偏偏與公主長得像凶伙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子它碎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容