繁体   English   中英

Flutter:如何禁用 IconButton 上的双击

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM