【问题标题】:Stop counter increment when it reaches 95达到 95 时停止计数器递增
【发布时间】:2021-03-15 17:04:09
【问题描述】:

我希望计数器在达到 95 时停止并播放声音让用户知道已达到限制。我想在达到限制时停止计数。我该如何实现这一点。提前致谢。

 class NinetyFiveTabs extends StatefulWidget {
    
      @override
      _NinetyFiveTabsState createState() => _NinetyFiveTabsState();
    }
    
    class _NinetyFiveTabsState extends State<NinetyFiveTabs> {
      int _counter = 0;
    
      void _incrementCounter() {
    
        setState(() {
          _counter++;
          }
        );
      }
    
      @override
      Widget build(BuildContext context) {
        return SafeArea(
          child: GestureDetector(
            onTap: _incrementCounter,
            child: Scaffold(
    
    
              body: ListView(
    
                children: <Widget>[
    
                  Text(
                    'You have pushed the button this many times:',
                  ),
                  Container(
                    height: MediaQuery.of(context).size.height,
                    child: Text(
                      '$_counter',
                      style: TextStyle(fontSize: 150.0),
                    ),
                  ),
                ],
              ),
             
              
            ),
          ),
        );
      }
    }

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    我不是这门语言的专家,但在你的 _increment 计数器中,我认为你应该像这样添加一个 if 语句:

    void _incrementCounter() {
    if(_counter < 95) {
        setState(() {
              _counter++;
              }
            );
    }
    else {alert-user-with-whatever-you-want-to}
    }
    
    

    【讨论】:

      【解决方案2】:

      在您的 _incrementCounter 函数中添加一个检查。增加您未满 95 岁,否则播放声音。

      要播放声音,您可以使用audioplayers

       void _incrementCounter() {
          if (_counter < 95) {
             setState(() {
              _counter++;
            });    
          } else {
            _player.play('sounds/beep.mp3');
          }
        }
      

      然后禁用你的按钮可能吗? 您可以使用 GestureDetector 中的 onTap 来做到这一点:

       onTap: _counter < 95 ? _incrementCounter : null;
      

      或在达到 95 后触发其他功能:

       onTap: _counter < 95 ? _incrementCounter : _someotherFunction;
      

      【讨论】:

        猜你喜欢
        • 2012-04-28
        • 1970-01-01
        • 2014-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多