I am new in flutter and I got an error that is- Basically ,I have two Screens one is login screen that is my main.dart file and second is home screen .So I just tried to implement "double tap back button to exit" on my home screen .For that I am used "WillPopScope" but when I click on back button flutter Throws me on my login screen instead of closing the application.
here my code -
home screen -
return Scaffold(
bottomNavigationBar: bottomnav(),
body: WillPopScope(
onWillPop: () async {
final difference = DateTime.now().difference(timeBackPressed);
final isExitWarning = difference >= Duration(seconds: 2);
timeBackPressed = DateTime.now();
if (isExitWarning) {
final message = "Press Back Again To Exit";
Fluttertoast.showToast(
msg: message,
fontSize: 18,
backgroundColor: Colors.white,
textColor: Colors.black.withOpacity(0.95));
return false;
} else {
Fluttertoast.cancel();
return true;
}
},
child: SingleChildScrollView(
reverse: false,
scrollDirection: Axis.vertical,
child: Container(
width: double.infinity,
//height: MediaQuery.of(context).size.height,
child: Column(children: <Widget>[
Padding(
padding: EdgeInsets.only(
top: 30, bottom: 12, left: 20, right: 0),
child: Align(
alignment: Alignment.bottomLeft,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text("Hello! Sudeep",
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w800,
color: Color(0xfffef9e7),
fontFamily: 'Lato')),
Text("Arya Nagar,Bhind",
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
fontFamily: 'Lato',
color: Color(0xff808b96)))
]),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
width: MediaQuery.of(context).size.width / 1.45,
height: 50,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.0),
color: Color(0xff17202a),
),
child: TextField(
style: GoogleFonts.inter(
color: Color(0xff808b96),
fontSize: 19,
//fontFamily: 'Lato',
),
cursorColor: Color(0xff808b96),
decoration: InputDecoration(
filled: true,
fillColor: Color(0xff212121),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(11.0),
borderSide: BorderSide(
style: BorderStyle.none, width: 0),
),
hintText: "Search Here",
hintStyle: TextStyle(
fontSize: 18,
color: Color(0xff808b96),
fontWeight: FontWeight.w400),
prefixIcon: Icon(Icons.search,
color: Color(0xff808b96), size: 30)),
),
),
Container(
width: MediaQuery.of(context).size.width / 5.9,
height: 56.0,
padding: EdgeInsets.only(
top: 1.6, bottom: 0, right: 12.0, left: 5.6),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0),
color: Color(0xff212121),
),
child: IconButton(
onPressed: () {},
icon: Icon(Icons.qr_code,
color: Color(0xff808b96), size: 39.0))),
]),
SizedBox(height: 30.0),
Container(
width: 364,
height: 200,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: itemimg.length,
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.only(right: 22, left: 6),
child: Card(
clipBehavior: Clip.antiAlias,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(22)),
child: itemimg[index]),
);
}),
),
SizedBox(height: 29),
Visibility(
child: Column(children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(
left: 29, right: 10, bottom: 14),
child: Icon(Icons.thumb_up_alt_outlined,
color: Colors.blue),
),
Text("Top Picks for u",
style: GoogleFonts.inter(
fontSize: 20,
fontWeight: FontWeight.w800,
color: Color(0xff808b96),
)),
]),
Padding(
padding: EdgeInsets.only(left: 20),
child: Container(
height: 200,
child: ListView.separated(
clipBehavior: Clip.antiAlias,
shrinkWrap: true,
scrollDirection: Axis.horizontal,
separatorBuilder: (context, _) =>
SizedBox(width: 10),
itemCount: reslst.length,
itemBuilder: (context, index) {
return Card(
color: Colors.transparent,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
),
child: Container(
width: 180.0,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(18.0),
),
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
menu(),
));
},
child: ClipRRect(
borderRadius:
BorderRadius.circular(
18.0),
child: reslst[index])),
Padding(
padding: EdgeInsets.only(
left: 10, top: 7),
child: Text(txtlst[index],
style: GoogleFonts.inter(
fontSize: 17,
fontWeight:
FontWeight.w600,
color:
Color(0xff263238))),
),
Row(children: [
Padding(
padding: EdgeInsets.only(
top: 5,
bottom: 5,
left: 10,
right: 3.5),
child: Icon(Icons.grade,
size: 15,
color: Colors.green),
),
Text("5.0",
style: GoogleFonts.inter(
fontSize: 14,
fontWeight:
FontWeight.w600,
color:
Color(0xff424242))),
]),
Row(children: [
Padding(
padding: EdgeInsets.only(
top: 5,
bottom: 5,
left: 10,
right: 3.5),
child: Icon(Icons.timer,
size: 15,
color: Colors.orange),
),
Text("45 mins",
style: GoogleFonts.inter(
fontSize: 14,
fontWeight:
FontWeight.w600,
color:
Color(0xff424242))),
]),
])));
}),
),
)
])),
SizedBox(height: 25),
Visibility(
child: Column(children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(
left: 29, right: 10, bottom: 14),
child: Icon(Icons.timer, color: Colors.orange),
),
Text("Less Waiting Time",
style: GoogleFonts.inter(
fontSize: 20,
fontWeight: FontWeight.w800,
color: Color(0xff808b96),
)),
]),
Padding(
padding: EdgeInsets.only(left: 20),
child: Container(
height: 200,
child: ListView.separated(
clipBehavior: Clip.antiAlias,
shrinkWrap: true,
scrollDirection: Axis.horizontal,
separatorBuilder: (context, _) =>
SizedBox(width: 10),
itemCount: reslst.length,
itemBuilder: (context, index) {
return Card(
color: Colors.transparent,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
),
child: Container(
width: 180.0,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(18.0),
),
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
InkWell(
onTap: () {
debugPrint("clicked");
},
child: ClipRRect(
borderRadius:
BorderRadius.circular(
18.0),
child: reslst[index])),
Padding(
padding: EdgeInsets.only(
left: 10, top: 7),
child: Text(txtlst[index],
style: GoogleFonts.inter(
fontSize: 17,
fontWeight:
FontWeight.w600,
color:
Color(0xff263238))),
),
Row(children: [
Padding(
padding: EdgeInsets.only(
top: 5,
bottom: 5,
left: 10,
right: 3.5),
child: Icon(Icons.grade,
size: 15,
color: Colors.green),
),
Text("5.0",
style: GoogleFonts.inter(
fontSize: 14,
fontWeight:
FontWeight.w600,
color:
Color(0xff424242))),
]),
Row(children: [
Padding(
padding: EdgeInsets.only(
top: 5,
bottom: 5,
left: 10,
right: 3.5),
child: Icon(Icons.timer,
size: 15,
color: Colors.orange),
),
Text("45 mins",
style: GoogleFonts.inter(
fontSize: 14,
fontWeight:
FontWeight.w600,
color:
Color(0xff424242))),
]),
])));
}),
),
)
])),
SizedBox(height: 25),
Visibility(
child: Column(children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(
left: 29, right: 10, bottom: 14),
child:
Icon(Icons.grade_outlined, color: Colors.green),
),
Text("Top Rated",
style: GoogleFonts.inter(
fontSize: 20,
fontWeight: FontWeight.w800,
color: Color(0xff808b96),
)),
]),
Padding(
padding: EdgeInsets.only(left: 20),
child: Container(
height: 200,
child: ListView.separated(
clipBehavior: Clip.antiAlias,
shrinkWrap: true,
scrollDirection: Axis.horizontal,
separatorBuilder: (context, _) =>
SizedBox(width: 10),
itemCount: reslst.length,
itemBuilder: (context, index) {
return Card(
color: Colors.transparent,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
),
child: Container(
width: 180.0,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(18.0),
),
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
InkWell(
onTap: () {
debugPrint("clicked");
},
child: ClipRRect(
borderRadius:
BorderRadius.circular(
18.0),
child: reslst[index])),
Padding(
padding: EdgeInsets.only(
left: 10, top: 7),
child: Text(txtlst[index],
style: GoogleFonts.inter(
fontSize: 17,
fontWeight:
FontWeight.w600,
color:
Color(0xff263238))),
),
Row(children: [
Padding(
padding: EdgeInsets.only(
top: 5,
bottom: 5,
left: 10,
right: 3.5),
child: Icon(Icons.grade,
size: 15,
color: Colors.green),
),
Text("5.0",
style: GoogleFonts.inter(
fontSize: 14,
fontWeight:
FontWeight.w600,
color:
Color(0xff424242))),
]),
Row(children: [
Padding(
padding: EdgeInsets.only(
top: 5,
bottom: 5,
left: 10,
right: 3.5),
child: Icon(Icons.timer,
size: 15,
color: Colors.orange),
),
Text("45 mins",
style: GoogleFonts.inter(
fontSize: 14,
fontWeight:
FontWeight.w600,
color:
Color(0xff424242))),
]),
])));
}),
),
)
])), ));