自定义原材料按钮 - Flutter

Posted

技术标签:

【中文标题】自定义原材料按钮 - Flutter【英文标题】:Customized Raw Material Button - Flutter 【发布时间】:2020-12-13 04:07:44 【问题描述】:

我想向 RawMaterialButton 类添加一个属性,这样当我按住按钮时,它会不断增加变量的值。就像我们长时间按下移动相机的拍摄按钮时,它会单击多次拍摄,直到我们离开按钮。关于如何做到这一点的任何想法?

【问题讨论】:

【参考方案1】:

您可以将 GestureDetector 与计时器一起使用。当 onTapDown 事件触发时启动计时器。当 onTapUp 事件触发时停止计时器。使用 Timer.periodic() 计时器重复增加变量。有多个与此相关的问题,例如:auto-increment、button-on-hold 等。这是我为此构建的小部件中的 onTapDown 和 onTapUp 方法(我希望在重复操作之前有一个初始延迟,因此检查 timer.tick):

Timer _timer;
.
.
.
void _onTapDown() 
  <on pressed action>
  _timer = Timer.periodic(Duration(milliseconds: 200), (timer) 
    if (timer.tick < 3) 
      return;
    
    if (widget == null) 
      timer.cancel();
      return;
    
    <on pressed action>
  );


void _onTapUp() 
  if (_timer == null) 
    return;
  
  _timer.cancel();

【讨论】:

以上是关于自定义原材料按钮 - Flutter的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 上设置自定义高程颜色?

材料升级后AngularJS自定义指令双向绑定中断

角材料垫按钮不会更新外部指令的禁用更改

android:背景在材料设计按钮组件中不起作用

Angular 材料 11:具有外观轮廓的 mat-form-field 以在整个项目中具有自定义的边界半径

重新定位材料自动完成弹出图标