软键盘覆盖了 SlidingUpPanel 颤动上的 TextInput

Lut*_*ris 2 textinput dart flutter

这是正在使用的,当我在其中使用 TextInput 时,panelBuilder 它同时具有 ListView 和 InputTextField,但是当我开始键入时,软键盘会覆盖 InputText 字段。

我还尝试添加这一行:

resizeToAvoidBottomInset: false,在 Manfiest 文件中加上Scaffold这个

<item name="android:windowFullscreen">true</item>

但没有运气。

以下是屏幕截图:

图一

[图二

Bak*_*ker 5

将结果的内容包含panelBuilder在 a 中Scaffold并且不要更改resizeToAvoidBottomInset。默认情况下,调整大小true会将内容向上移动以避免在出现时被键盘隐藏。设置false可防止调整大小的发生。

\n

下面的示例来自Slide_up_panel 包 examplepanelBuilder参数结果包含在Scaffold. (我并不是建议您_panel像我在下面所做的那样换行,只是更容易地展示以这种方式工作的示例。可能更好地在_panel本身中使用 Scaffold 可能会更好。)

\n
  @override\n  Widget build(BuildContext context){\n    _panelHeightOpen = MediaQuery.of(context).size.height * .80;\n\n    return Material(\n      child: Stack(\n        alignment: Alignment.topCenter,\n        children: <Widget>[\n\n          SlidingUpPanel(\n            maxHeight: _panelHeightOpen,\n            minHeight: _panelHeightClosed,\n            parallaxEnabled: true,\n            parallaxOffset: .5,\n            body: _body(),\n            // WRAP panel contents in Scaffold\n            panelBuilder: (sc) => Scaffold(body: _panel(sc)),\n            // \xe2\x86\x91\xe2\x86\x91\xe2\x86\x91\xe2\x86\x91\xe2\x86\x91\xe2\x86\x91\xe2\x86\x91\xe2\x86\x91\n            borderRadius: BorderRadius.only(topLeft: Radius.circular(18.0), topRight: Radius.circular(18.0)),\n            onPanelSlide: (double pos) => setState((){\n              _fabHeight = pos * (_panelHeightOpen - _panelHeightClosed) + _initFabHeight;\n            }),\n          ),\n
Run Code Online (Sandbox Code Playgroud)\n

要测试自己,请在底部添加一个 TextFormFieldWidget _panel(ScrollController sc)方法的底部(大约第 242 行)

\n
            SizedBox(height: 24,),\n            // \xe2\x86\x93 Added for testing\n            TextFormField(\n              initialValue: \'type here\',\n              onSaved: (txt) => null,\n            )\n
Run Code Online (Sandbox Code Playgroud)\n

然后运行该示例,向上滚动面板并点击 TextField 让键盘向上滑动。

\n

面板由键盘推起

\n