I have an issue with my modal bottom sheet it slides under the status bar whenever the keyboard appears on screen like so
I tried putting the second widget in a Safe area but that did not work regardless of where I put the safe area Here is my code :
showModalBottomSheet<void>(isScrollControlled: true,context: context, builder: (BuildContext context,) {
//Tried safe area here
return LoginBottomSheet();
});
this is where I show the bottom sheet and this is the bottom sheet code :
class _LoginBottomSheetState extends State<LoginBottomSheet> {
int currentView = 0;
late List<Widget> pages;
@override
void initState() {
pages = [
login(),
signUp(),
];
super.initState();
}
@override
Widget build(BuildContext context) {
//and tried safe area here as well
return AnimatedSwitcher(
transitionBuilder: (child, animation) => SizeTransition(
child: child,
sizeFactor: animation,
),
child: pages[currentView],
duration: Duration(milliseconds: 500),
);
}
and this is the code for the sign up
return SafeArea(
top:true,
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Align(
alignment: Alignment.topLeft,
child: MaterialButton(
onPressed: () {
setState(() {
currentView = 0;
});
},
child: Icon(Icons.arrow_back),
),
),
Padding(
padding: const EdgeInsets.only(left:32.0,right:32,bottom:16,top:0),
child: Form(
child: Column(children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Material(
borderRadius: BorderRadius.circular(12),
elevation: 10,
child: TextFormField(
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: BorderSide(color: Colors.deepPurple)),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: Colors.grey.shade100)),
hintText: "Name",
)),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Material(
elevation: 10,
borderRadius: BorderRadius.circular(12),
child: TextFormField(
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: BorderSide(color: Colors.deepPurple)),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: Colors.grey.shade100)),
hintText: "Email",
)),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Material(
elevation: 10,
borderRadius: BorderRadius.circular(12),
child: TextFormField(
obscureText: true,
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: Colors.deepPurple)),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: Colors.grey.shade100)),
hintText: "Password",
)),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Material(
elevation: 10,
borderRadius: BorderRadius.circular(12),
child: TextFormField(
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: BorderSide(color: Colors.deepPurple)),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: Colors.grey.shade100)),
hintText: "Phone Number",
)),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Material(
elevation: 10,
borderRadius: BorderRadius.circular(12),
child: TextFormField(
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: BorderSide(color: Colors.deepPurple)),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: Colors.grey.shade100)),
hintText: "Address",
)),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: ElevatedButton(
onPressed: () {
print("Signing up baby!");
},
child: Padding(
padding: const EdgeInsets.symmetric(
vertical: 16, horizontal: 100),
child: Text(
"Sign Up",
style: TextStyle(
fontSize: 20,
color: Colors.white,
fontWeight: FontWeight.bold),
),
)
),
),
]),
),
)
],
),
),
);
}
From what I read online the safe area should in fact make the widget avoid operating system interface, so i don't know what I am doing wrong here