Android 颤振平板电脑应用程序键盘覆盖文本输入

Android 颤振平板电脑应用程序键盘覆盖文本输入,android,ios,flutter,mobile-application,soft-keyboard,Android,Ios,Flutter,Mobile Application,Soft Keyboard,这是一个经典问题,但我发现,尽管手机有很多很好的解决方案,但由于某些原因,它们无法在平板电脑(模拟器或实际设备)上工作 当我点击文本字段时,键盘会打开并覆盖它。我添加了一个带有“MediaQuery.of(context).viewInsets.bottom”的大小框作为高度,这样当键盘打开时,我可以滚动到文本字段。但我需要屏幕在键盘打开时自动滚动到文本字段。我试着将整个东西放在NestedScrollView中,并使用globalKey.currentState.innerController

这是一个经典问题,但我发现,尽管手机有很多很好的解决方案,但由于某些原因,它们无法在平板电脑(模拟器或实际设备)上工作

当我点击文本字段时,键盘会打开并覆盖它。我添加了一个带有“MediaQuery.of(context).viewInsets.bottom”的大小框作为高度,这样当键盘打开时,我可以滚动到文本字段。但我需要屏幕在键盘打开时自动滚动到文本字段。我试着将整个东西放在NestedScrollView中,并使用globalKey.currentState.innerController设置动画。但它只设置了一定数量的动画,我需要它设置特定文本字段的动画

我看过一些插件,但它们要求您以一种非常特定的方式构建东西,我正在使用一个无法围绕它构建的大型应用程序

我不会在电话里听到这个问题。手机会自动滚动。我用的是同样的代码。这是我的一个小部件的剪贴画,我遇到了麻烦

Container(
     constraints: BoxConstraints(minHeight: MediaQuery.of(context).size.height),
     padding: EdgeInsets.only(bottom: _containerPaddingBottom),
     decoration: BoxDecoration(
      image: DecorationImage( 
        image: widget.image,
        fit: BoxFit.cover,
       ),
     ),
          child: SingleChildScrollView(
              child: Container(
                padding: EdgeInsets.only(top: _containerPaddingTop),
                constraints: BoxConstraints(minHeight: MediaQuery.of(context).size.height - _buttonHeight - _containerPaddingTop - _bottomPadding),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.stretch,
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    Column(
                      children: [
                        Center(
                          child: Container(
                            width: _titleWidth,
                            margin: EdgeInsets.only(left: 19, right: 19, bottom: 21),
                            child: Text(
                              widget.screenTitle,
                              textAlign: TextAlign.center,
                              style: Theme.of(context).textTheme.headline4, 
                            ),
                          ),
                        ),
                        widget.mainContent,
                      ],
                    ),
                    Column(
                      children: [
                        widget.bottomContent,
                        SizedBox(
                          height: MediaQuery.of(context).viewInsets.bottom,
                        ),
                      ]
                    )
                  ],
                ),
              ),
            ),
        ),
    ```

您正在使用一个具有固定高度的容器包装
SingleScrollView

您可能需要执行相反的操作:使用
SingleChildScrollView
包装
容器

所以我发现了问题!我的应用程序的平板电脑版本屏幕没有脚手架。一旦我将屏幕包装在支架中,它会自动滚动,以便在键盘打开时不隐藏文本字段。

BoxConstraints不是固定高度。并且容器可以滚动。此外,如果这是一个问题,我认为这也会影响手机屏幕。但我还是试着把它拿走了,但运气不好。谢谢你的回复。