Flutter:我希望在选择 Textfield 时屏幕自动向上滚动,这样我的提交按钮就不会被隐藏?

Dam*_*dal 3 scroll flutter flutter-layout

我目前正在将列小部件包装在 SingleChildScrollView() 中,并在 Scaffold() 上设置 resizeToAvoidBototmInset: false,但在选择文本字段时屏幕不会自动向上滚动。理想情况下,我希望当用户将数据输入第二个字段时显示提交按钮。目前,当键盘可见时,它在某些设备上隐藏。

Scaffold(
    resizeToAvoidBottomInset: false,
    body: SingleChildScrollView(
        child: SafeArea(
            child: Stack(
                children: <Widget> [
                    CustomPaint(),
                    Column(children: <Widget>[
                        TextField(), 
                        TextField(), 
                        RaisedButton(),
                    ])
                ]
            )
        )
    )
)
Run Code Online (Sandbox Code Playgroud)

这就是当前格式的样子。我在文本字段上没有 FocusNode(),并且确实考虑过根据键盘何时可见来提升文本字段,但这会干扰我的自定义绘画背景,并且不希望产生这种效果。

从概念的角度来看,我是否缺少一些东西来阻止屏幕自动向上滚动。

Dev*_*777 6

尝试使用以下代码:

GlobalKey globalKey = GlobalKey();

...


TextField(
  onTap: ()async{
    await Future.delayed(Duration(milliseconds: 500));
    RenderObject object = globalKey.currentContext.findRenderObject();
    object.showOnScreen();
  },
), 
RaisedButton(
  key: globalKey,
  onPressed: (){},
),
Run Code Online (Sandbox Code Playgroud)