如何使BottomNavigationBar停留在键盘颤动的顶部

Kak*_*ime 6 dart flutter

我正在尝试制作一个简单的聊天应用程序,所以我创建了一个脚手架,然后将身体作为消息,bottomNavigationBar将其作为输入字段和发送图标。

我添加了一个文本字段,但键入时导航栏被键盘隐藏了。

这是我的代码BottomNavigationBar

bottomNavigationBar: new Container(
          height: ScreenSize.height/12,
          /*color: Colors.red,*/

          child: new Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,

            children: <Widget>[
              new Column(
          mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: <Widget>[
                  new Container(
                    child: new Icon(Icons.send),

                    width:ScreenSize.width/6,
                  ),
                ],
              ),
              new Column(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: <Widget>[
                  Material(
                    child: new Container(
                      child: new TextField(
                        autofocus: false,
                        decoration: InputDecoration(
                          contentPadding: EdgeInsets.all(9.0),
                          border: InputBorder.none,
                          hintText: 'Please enter a search term',
                        ),
                      ),
                      width:ScreenSize.width*4/6,
                    ),
                      elevation: 4.0,
                    /*borderRadius: new BorderRadius.all(new Radius.circular(45.0)),*/
                    clipBehavior: Clip.antiAlias,
                    type: MaterialType.card,
                  )
                ],
              ),
              new Column(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: <Widget>[
                  new Container(
                    child: Text('HELLO C1'),
                    color: Colors.green,
                    width:ScreenSize.width/6,
                  ),
                ],
              )




            ],
          ),
        ),
Run Code Online (Sandbox Code Playgroud)

这是聚焦时的样子:

在此处输入图片说明

joh*_*ohn 31

只需用 Padding 包裹底部导航栏并将其设置为 MediaQuery.of(context).viewInsets,

  bottomNavigationBar: Padding(
       padding: MediaQuery.of(context).viewInsets,
        child: ChatInputField(),
     ),
Run Code Online (Sandbox Code Playgroud)


bla*_*eil 18

如果您在 Scaffold 的主体上使用 Stack 而不是 bottomNavigationBar,您的导航将向上推到键盘上方。即使您使用 Positioned 固定到底部:

Positioned(
   bottom: 0.0,
   left: 0.0,
   right: 0.0,
   child: MyNav(),
),
Run Code Online (Sandbox Code Playgroud)