[英]How to show container above on keyboard in Flutter
I am follow this stack overflow accepted answer Link to display a container
widget right above on keyboard
if keyboard
pops up.如果
keyboard
弹出,我会按照这个堆栈溢出接受的答案链接在keyboard
上方显示一个container
小部件。 But problem is when i try this on my code then this container
get hidden if keyboard
popsup.但问题是当我在我的代码上尝试这个时,如果
keyboard
弹出,这个container
就会被隐藏。 How to solve this issue, below is the sample dart code till now what i tried this.如何解决这个问题,下面是到目前为止我尝试过的示例 dart 代码。
TestPage.dart
测试页.dart
class TestPage extends StatefulWidget {
const TestPage({Key? key}) : super(key: key);
@override
_TestPageState createState() => _TestPageState();
}
class _TestPageState extends State<TestPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Center(
child: TextButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => ForgotPasswordPage()));
},
child: Text('Click'),
),
),
),
);
}
}
ForgotPasswordPage.dart
ForgotPasswordPage.dart
class ForgotPasswordPage extends StatefulWidget {
const ForgotPasswordPage({
Key? key,
}) : super(key: key);
@override
_ForgotPasswordPageState createState() => _ForgotPasswordPageState();
}
class _ForgotPasswordPageState extends State<ForgotPasswordPage> {
final TextEditingController mobileNumber = TextEditingController();
_ForgotPasswordPageState();
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: false,
backgroundColor: Colors.red,
appBar: AppBar(
backgroundColor: Colors.red,
elevation: 0,
),
body: Stack(children: <Widget>[
Container(
child: Column(
children: <Widget>[TextField()],
),
),
Positioned(
bottom: MediaQuery.of(context).viewInsets.bottom,
left: 0,
right: 0,
child: Container(
height: 50,
child: Text("Aboveeeeee"),
decoration: BoxDecoration(color: Colors.pink),
),
),
])
);
}
}
Actually there's a package for that if you open a keyboard on the bottom widget also goes up the package name keyboard_attachable .实际上有一个 package 如果你在底部小部件上打开一个键盘,package 名称keyboard_attachable也会上升。
Am also using this.我也在用这个。
in the package indicate and example like this在 package 中表示和这样的例子
return Scaffold(
body: SafeArea(
child: FooterLayout(
footer: Container(
height: 70.0,
color: Colors.blue,
),
child: Column(
children: const [
Center(child: TextField()),
],
)),
),
);
As i copied the code its working fine on me am using nullsafety by the way当我复制代码时,它对我的工作正常,顺便说一下使用 nullsafety
testpage.dart测试页.dart
class TestPage extends StatefulWidget {
const TestPage({Key? key}) : super(key: key);
@override
_TestPageState createState() => _TestPageState();
}
class _TestPageState extends State<TestPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Center(
child: TextButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => ForgotPasswordPage()));
},
child: Text('Click'),
),
),
),
);
}
}
and for forgotpasswordpage.dart和 forgotpasswordpage.dart
class ForgotPasswordPage extends StatefulWidget {
const ForgotPasswordPage({
Key? key,
}) : super(key: key);
@override
_ForgotPasswordPageState createState() => _ForgotPasswordPageState();
}
class _ForgotPasswordPageState extends State<ForgotPasswordPage> {
final TextEditingController mobileNumber = TextEditingController();
_ForgotPasswordPageState();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.red,
elevation: 0,
),
body: SafeArea(
child: FooterLayout(
footer: Container(
height: 70.0,
color: Colors.blue,
),
child: Column(
children: const [
Center(child: TextField()),
],
)),
),
);
}
}
import 'package:flutter/material.dart';导入“包:颤振/material.dart”;
class ForgotPasswordPage extends StatefulWidget {
const ForgotPasswordPage({
Key key,
}) : super(key: key);
@override
_ForgotPasswordPageState createState() => _ForgotPasswordPageState();
}
class _ForgotPasswordPageState extends State<ForgotPasswordPage> {
final TextEditingController mobileNumber = TextEditingController();
_ForgotPasswordPageState();
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: false,
backgroundColor: Colors.red,
appBar: AppBar(
backgroundColor: Colors.red,
elevation: 0,
),
body: Stack(
children:[
Container(
child: Column(
children: [
TextField()
],
),
),
Positioned(
bottom: MediaQuery.of(context).viewInsets.bottom,
left: 0,
right: 0,
child: Container(
height: 50,
child: Text("Aboveeeeee"),
decoration: BoxDecoration(color: Colors.pink),
),
),
])
);
}
}!
[Result] https://i.stack.imgur.com/9TMix.jpg [结果] https://i.stack.imgur.com/9TMix.jpg
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.