【问题标题】:Soft Keyboard covers TextInput on the SlidingUpPanel flutter软键盘覆盖了 SlidingUpPanel 上的 TextInput 颤动
【发布时间】:2021-01-08 15:00:25
【问题描述】:

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

我也尝试添加这一行:

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

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

但没有运气。

以下是截图:

image one

[image two

【问题讨论】:

    标签: flutter dart textinput


    【解决方案1】:

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

    以下示例来自slide_up_panel package examplepanelBuilder 参数结果包含在Scaffold 中。 (我不建议您像我在下面所做的那样包装 _panel,只是更容易显示以这种方式工作的示例。在 _panel 函数本身中使用 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;
                }),
              ),
    

    为了测试自己,在 Widget _panel(ScrollController sc) 方法的底部添加一个 TextFormField(在第 242 行附近)

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

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

    【讨论】:

    • 非常感谢@Baker,你救了我的命
    猜你喜欢
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 2021-08-05
    相关资源
    最近更新 更多