[英]Flutter: How do i disable double pressed on IconButton
我在persistentFooterButtons
中有一些IconButton
可以导航到其他屏幕,但是如果我在任何按钮上按两次并按后退按钮,它会重定向两次。 如果我多次按下按钮并按下后退按钮,它会显示相同的页面。 所以我只想点击一次,当它点击并显示页面时,按钮将禁用并且不会按下我认为它有效但我知道我该怎么做。 请帮我解决这个问题。
这是我的代码:-
class Footer extends StatefulWidget {
Footer({Key? key}) : super(key: key);
@override
_Footer createState() => _Footer();
}
class _Footer extends State<Footer>{
bool _isButtonTapped1 = false;
bool _isButtonTapped2 = false;
bool _isButtonTapped3 = false;
bool _isButtonTapped4 = false;
@override
Widget build(BuildContext context){
return MaterialApp(
home: Scaffold(
appBar: AppBar()
persistentFooterButtons: [
Row(
children: [
IconButton(
onPressed: () {
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context) => const CardApp()),
(Route<dynamic> route) => false);
},
icon: SvgPicture.asset(
'assets/images/f_home.svg',
),
),
Spacer(),
IconButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Matches()),
);
},
icon: SvgPicture.asset(
'assets/images/f_fav.svg',
),
),
Spacer(),
IconButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Message()),
);
},
icon: SvgPicture.asset(
'assets/images/f_chat.svg',
),
),
Spacer(),
IconButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Favorites()),
);
},
icon: SvgPicture.asset(
'assets/images/f_star.svg',
),
),
]
)
],
),
);
}
}
这是我的persistentFooterButtons
代码,它添加了四个按钮,每个按钮都在自己的屏幕上导航。 请帮我禁用每个按钮上的多个onPressed
。 如果有人知道请帮助我
你可以像这样使用它:
async {
await Navigator.push(
context,
MaterialPageRoute(builder: (context) => Message()),
);
}
如果你想防止用户多次按下,在 InkWell 小部件中,使用这个:onDoubleTap: (){},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.