繁体   English   中英

软键盘覆盖 SlidingUpPanel flutter 上的 TextInput

[英]Soft Keyboard covers TextInput on the SlidingUpPanel flutter

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

我也尝试添加这一行:

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

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

但没有运气。

以下是截图:

图一

图二

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

下面的示例来自slide_up_panel package 示例,其中panelBuilder参数结果包装在Scaffold中。 (我不建议您像我在下面所做的那样包装_panel ,只是更容易显示以这种方式工作的示例。在_panel function 本身中使用 Scaffold 可能会更好。)

  @override
  Widget build(BuildContext context){
    _panelHeightOpen = MediaQuery.of(context).size.height * .80;

    return Material(
      child: Stack(
        alignment: Alignment.topCenter,
        children: <Widget>[

          SlidingUpPanel(
            maxHeight: _panelHeightOpen,
            minHeight: _panelHeightClosed,
            parallaxEnabled: true,
            parallaxOffset: .5,
            body: _body(),
            // WRAP panel contents in Scaffold
            panelBuilder: (sc) => Scaffold(body: _panel(sc)),
            // ↑↑↑↑↑↑↑↑
            borderRadius: BorderRadius.only(topLeft: Radius.circular(18.0), topRight: Radius.circular(18.0)),
            onPanelSlide: (double pos) => setState((){
              _fabHeight = pos * (_panelHeightOpen - _panelHeightClosed) + _initFabHeight;
            }),
          ),

为了测试自己,将 TextFormField 添加到Widget _panel(ScrollController sc)方法的底部(大约第 242 行)

            SizedBox(height: 24,),
            // ↓ Added for testing
            TextFormField(
              initialValue: 'type here',
              onSaved: (txt) => null,
            )

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

被键盘顶起的面板

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM