Flutter:是否有一个保留选项而不是被压迫一次以重复SetState

时间:2019-07-15 20:36:16

标签: button flutter counter setstate flutter-onpressed

我想要一个可以按住的按钮,然后Setstate重复,除非我停止按住它。

我是初学者,正在第一个应用程序中工作。我想计算音量。人们必须输入高度,宽度和部门。我不需要在text(form)字段中,因为键盘是必需的。我找到了一个带有两个按钮的解决方案,一个加号和一个减号按钮。

我可以使用它,但是人们必须经常按下按钮才能设置所需的高度值。

我想而不是被压迫,而是使用保留的东西,并且计数器正在快速增加。但是我不知道解决方案。

RawMaterialButton(
child: Icon(MdiIcons.minus),
onPressed: () {
setState(() {
width--;

2 个答案:

答案 0 :(得分:1)

如果您仍然对该主题感兴趣,可以尝试 input { jdbc { jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/ifxjdbc-4.50.3.jar" jdbc_driver_class => "com.informix.jdbc.IfxDriver" jdbc_connection_string => "jdbc:informix-sqli://xxxxxxxx" jdbc_user => "***" jdbc_password => "****" schedule => "* * * * *" statement => "SELECT * FROM informix.test WHERE id_nvd_com > :sql_last_value" use_column_value => true tracking_column => id_nvd_com last_run_metadata_path => "/var/log/logstash/value/test_last_value.yml" tags => "test" } } output { if "test" in [tags] { stdout { codec => json_lines } jdbc { connection_string => 'jdbc:postgresql://xxxxxxxx' statement => ["SELECT * FROM public.sp_lgs_test(?, ?, ?)", "test1", "test2", "test3"] } } ,请参阅https://pub.dev/packages/holding_gesture

答案 1 :(得分:0)

好的,我没有修复它。作为初学者,这对我来说太复杂了。 我找到了另一个解决方案。 我和三个孩子排成一排: 减号按钮和加号按钮可进行微调 大步的滑块。

这是我使用的代码,请问您有更好的解决方案吗?我只是把它放在像我这样的其他初学者身上。 我要感谢尝试帮助我的特殊@ Abbas.M。

Row(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: <Widget>[
                    AnimatedOpacity(
                      opacity: height == 1 ? 0.0 : 1.0,
                      duration: Duration(milliseconds: 500),
                      child: RawMaterialButton(
                        child: Icon(MdiIcons.minus),
                        onPressed: () {
                          setState(() {
                            height > 1 ? height-- : height = height;
                          });
                        },
                        constraints: BoxConstraints.tightFor(
                          width: 25.0,
                          height: 25.0,
                        ),
                        shape: CircleBorder(),
                        fillColor: white,
                      ),
                    ),
                    SliderTheme(
                      data: SliderTheme.of(context).copyWith(
                        inactiveTrackColor: cAppBottomBar,
                        activeTrackColor: white,
                        thumbColor: white,
                        overlayColor: cShadow,
                        thumbShape:
                            RoundSliderThumbShape(enabledThumbRadius: 10.0),
                        overlayShape:
                            RoundSliderOverlayShape(overlayRadius: 17.0),
                      ),
                      child: Slider(
                          value: height.toDouble(),
                          min: 1,
                          max: 300,
                          onChanged: (value) {
                            setState(() {
                              height = value.toInt();
                            });
                          }),
                    ),
                    AnimatedOpacity(
                      opacity: height == 300 ? 0.0 : 1.0,
                      duration: Duration(milliseconds: 500),
                      child: RawMaterialButton(
                        child: Icon(Icons.add),
                        onPressed: () {
                          setState(() {
                            height < 300 ? height++ : height = height;
                          });
                        },
                        constraints: BoxConstraints.tightFor(
                          width: 25.0,
                          height: 25.0,
                        ),
                        shape: CircleBorder(),
                        fillColor: white,
                      ),
                    ),