Android 颤振平板电脑应用程序键盘覆盖文本输入
这是一个经典问题,但我发现,尽管手机有很多很好的解决方案,但由于某些原因,它们无法在平板电脑(模拟器或实际设备)上工作 当我点击文本字段时,键盘会打开并覆盖它。我添加了一个带有“MediaQuery.of(context).viewInsets.bottom”的大小框作为高度,这样当键盘打开时,我可以滚动到文本字段。但我需要屏幕在键盘打开时自动滚动到文本字段。我试着将整个东西放在NestedScrollView中,并使用globalKey.currentState.innerController设置动画。但它只设置了一定数量的动画,我需要它设置特定文本字段的动画 我看过一些插件,但它们要求您以一种非常特定的方式构建东西,我正在使用一个无法围绕它构建的大型应用程序 我不会在电话里听到这个问题。手机会自动滚动。我用的是同样的代码。这是我的一个小部件的剪贴画,我遇到了麻烦Android 颤振平板电脑应用程序键盘覆盖文本输入,android,ios,flutter,mobile-application,soft-keyboard,Android,Ios,Flutter,Mobile Application,Soft Keyboard,这是一个经典问题,但我发现,尽管手机有很多很好的解决方案,但由于某些原因,它们无法在平板电脑(模拟器或实际设备)上工作 当我点击文本字段时,键盘会打开并覆盖它。我添加了一个带有“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不是固定高度。并且容器可以滚动。此外,如果这是一个问题,我认为这也会影响手机屏幕。但我还是试着把它拿走了,但运气不好。谢谢你的回复。