软键盘向上弹出的时候,会使界面高度重新计算然后刷新布局,所以导致布局向上顶起的现象,解决方案如下:
1. Scaffold 中需要加入resizeToAvoidBottomPadding: false ,
2. body 部分用SafeArea+SingleChildScrollView+SizeBox包裹,然后设置高度,用来规避重新计算的问题:
@override
Widget build(BuildContext context) {
final padding = MediaQuery.of(context).padding;
final height =
MediaQuery.of(context).size.height - padding.top - padding.bottom;
final width = MediaQuery.of(context).size.width;
baseContext = context;
resource = Translations.of(context);
return LifeCycleDetector(
//不重要的省略 XXXXX
child: Scaffold(
resizeToAvoidBottomPadding: false,
appBar: AppBar(
iconTheme: IconThemeData(color: BeautyColors.blue01),
backgroundColor: Colors.transparent,
centerTitle: true,
elevation: 0,