首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在DragTarget内部重置值?

在Flutter中,可以通过使用DragTarget组件内部的onWillAccept回调函数来重置值。

DragTarget是用于接收拖动操作的组件,可以在其内部定义拖动目标的行为。要在DragTarget内部重置值,可以在onWillAccept回调函数中执行重置逻辑。

以下是一个示例代码,展示了如何在DragTarget内部重置值:

代码语言:txt
复制
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: MyDragTarget(),
      ),
    );
  }
}

class MyDragTarget extends StatefulWidget {
  @override
  _MyDragTargetState createState() => _MyDragTargetState();
}

class _MyDragTargetState extends State<MyDragTarget> {
  String value = '';

  void resetValue() {
    setState(() {
      value = '';
    });
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Container(
          height: 200,
          width: 200,
          color: Colors.grey,
          child: DragTarget(
            onWillAccept: (data) {
              resetValue(); // 在拖动进入时重置值
              return true;
            },
            onAccept: (data) {
              setState(() {
                value = data; // 更新值
              });
            },
            builder: (context, candidateData, rejectedData) {
              return Center(
                child: Text(
                  value,
                  style: TextStyle(fontSize: 20),
                ),
              );
            },
          ),
        ),
        Draggable(
          data: 'New Value',
          child: Container(
            height: 50,
            width: 100,
            color: Colors.blue,
            child: Center(
              child: Text(
                'Drag Me',
                style: TextStyle(color: Colors.white),
              ),
            ),
          ),
          feedback: Container(
            height: 50,
            width: 100,
            color: Colors.blue.withOpacity(0.5),
            child: Center(
              child: Text(
                'Drag Me',
                style: TextStyle(color: Colors.white),
              ),
            ),
          ),
        ),
      ],
    );
  }
}

在上述代码中,我们创建了一个DragTarget组件,它接受Draggable组件的拖动操作。当拖动进入DragTarget时,onWillAccept回调函数会被调用,并在其中执行resetValue函数,将value重置为空字符串。当拖动成功放置到DragTarget时,onAccept回调函数会被调用,将data值赋给value,更新显示的值。

通过以上代码,当你将"Drag Me"文本拖动到灰色区域内时,拖动区域内的值将会被重置为空字符串。

这是一个简单的例子,你可以根据实际需求修改和扩展代码。希望对你有帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 桌面探索 | 自定义可拖拽导航栏

外界并不需要用到这个状态,所以可以将 LeftNavigationBarItemWidget 组件定义为 StatefulWidget ,来维护悬浮时的内部状态变化。...这里使用的是 Draggable 和 DragTarget 的组合,其中 Draggable 指的是可拖拽物体,DragTarget 指的是受体目标。...下面是代码实现的核心,其中对应 _disableHover 标识来控制是否可以悬浮激活,在 DragTarget 的相关回调中维护 _disableHover 的。..._onWillAccept 可以通过返回来控制,是否拖拽物是否符合目标的接收条件,只有符合条件才会在后续触发 _onAccept。...比如将菜单的数据存储在本地,这样就可以保证程序关闭之后,再打开不会重置。另外也可以提供相关的后端接口,让数据同步到服务端,这样多设备就可以实现同步。

2.3K20
  • 技术 | 如何在Python下生成用于时间序列预测的LSTM状态

    LSTM的一个关键特性是它们维持一个内部状态,该状态能在预测时提供协助。这就引出了这样一个问题:如何在进行预测之前在合适的 LSTM 模型中初始化状态种子。...LSTM状态种子初始化 当在Keras中使用无状态LSTM时,您可精确控制何时清空模型内部状态。 这是通过使用model.reset_states()函数实现的。...这样的话,每个epoch在训练期间创建的状态才会与该epoch的观察序列相匹配。 假定我们能够实现这种精确控制,还有这样一个问题:是否要以及如何在进行预测前预置LSTM的状态。...从每次试验收集的均方根误差(RMSE)给出结果分布,然后可使用描述统计学(平均偏差和标准偏差)方法进行总结。...评测在每个epoch结束后重置和不重置LSTM状态的影响。 你尝试过这些延伸试验吗?

    2K70

    AI 技术讲座精选:「Python」LSTM时序预测状态种子初始化

    LSTM的一个关键特性是它们维持一个内部状态,该状态能在预测时提供协助。这就引出了这样一个问题:如何在进行预测之前在合适的 LSTM 模型中初始化状态种子。...这样的话,每个epoch在训练期间创建的状态才会与该epoch的观察序列相匹配。 假定我们能够实现这种精确控制,还有这样一个问题:是否要以及如何在进行预测前预置LSTM的状态。...从每次试验收集的均方根误差(RMSE)给出结果分布,然后可使用描述统计学(平均偏差和标准偏差)方法进行总结。...评测在每个epoch结束后重置和不重置LSTM状态的影响。 你尝试过这些延伸试验吗?...总 结 通过学习本教程,你学会了如何在解决单变量时间序列预测问题时用试验的方法确定初始化LSTM状态种子的最佳方法。

    2K50

    0560-03-如何使用root用户重置FreeIPA admin密码

    Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1 文档编写目的 前面Fayson文章讲《0558-01-如何在...Redhat7上安装FreeIPA》和《0559-02-如何在Redhat7上安装FreeIPA的客户端》,FreeIPA集成了用户管理及Kerberos认证。...3.编辑/etc/dirsrv/slapd-FAYSON-NET/dse.ldif文件,在文件中找到nsslapd-rootpw配置将上一步生成的hash密码替换该 ?...注意:dse.ldif文件中nsslapd-rootpw配置的密码默认换了行别删漏了。...3 重置FreeIPA管理员密码 根据上面的操作已完成了目录管理员密码的重置,那接下来需要重置FreeIPA的管理员密码。 1.首先检查你的ldap客户端配置文件是否正确 ?

    1.9K30

    何在Ubuntu 14.04第2部分上查询Prometheus

    在如何在Ubuntu 14.04第1部分中查询Prometheus,我们设置了三个演示服务实例,向Prometheus服务器公开合成度量。...在内部,直方图被实现为一组时间序列,每个时间序列表示给定桶的计数(例如“10ms以下的请求”,“25ms以下的请求”,“50ms以下的请求”等)。...当重新启动单个服务实例时,存储区计数器会重置,并且您通常希望查看“现在”的延迟(例如,在过去5分钟内测量的),而不是指标的整个时间。...此错误取决于您的铲斗尺寸,观测的分布以及您要计算的目标分位数。 您现在知道如何解释直方图度量以及如何在不同时间范围内从它们计算分位数,同时还可以动态地聚合某些维度。...如果您绘制原始时间戳图,它看起来会像这样: 您所见,原始时间戳本身通常不是很有用。相反,您经常想知道时间戳的年龄。

    2.8K00

    CSS层叠技术:优化CSS重置,打造独特样式

    之前提到的,Normalize CSS也负责处理在不同浏览器中可能会有差异展现的Shadow DOM元素。...这样可以确保处理内部 shadow DOM元素,并忽略从“用户代理样式表”继承的无用样式。实现这一点最简单的方法是同时加载两者。...以下是如何在Sass预处理器中实现的演示: /* CSS Resets */ @use 'normalize'; @use 'reset'; 你可能会认为,如果我们首先加载Normalize CSS,然后再加载...“新的CSS重置方法”是一种新的重置CSS的方式,利用了新的原生CSS重置功能。...它将部分样式包裹起来,定义层的部分,并在层自身内部实行CSS优先级。 这个做法本身就能解决我们的问题。 为了更精确地定义层的顺序,我们可以添加一个 @layer,这将决定你希望代码按何种顺序出现。

    23020

    RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

    本文约1700字,建议阅读5分钟本文将演示如何在 R 中使用 LSTM 实现时间序列预测。 全文链接:http://tecdat.cn/?...请注意,训练数据集的最小和最大是用于标准化训练和测试数据集以及预测的标准化系数。这确保了测试数据的最小和最大不会影响模型。...## 逆变换invtg = function(sle, slr, fue = c(0, 1)) 定义 定义模型 我们设置参数 stateful = TRUE 以便在处理一批样本后获得的内部状态被重新用作下一批样本的初始状态...特征:对于单变量情况,本例所示,特征 = 1。 批量大小必须是训练样本和测试样本大小的共同因素。可以找到 LSTM 输入的一个很好的解释。...LSTM 还需要在每个 epoch 之后重置网络状态。为了实现这一点,我们在 epoch 上运行一个循环,在每个 epoch 中我们拟合模型并通过参数 _reset_states()_重置状态。

    57111

    RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

    本文将演示如何在 R 中使用 LSTM 实现时间序列预测。 ---- 简单的介绍 时间序列涉及按时间顺序收集的数据。我用 xt∈R 表示单变量数据,其中 t∈T 是观察数据时的时间索引。...请注意,训练数据集的最小和最大是用于标准化训练和测试数据集以及预测的标准化系数。这确保了测试数据的最小和最大不会影响模型。...## 逆变换 invtg = function(sle, slr, fue = c(0, 1)) 定义 定义模型 我们设置参数 stateful = TRUE 以便在处理一批样本后获得的内部状态被重新用作下一批样本的初始状态...在此示例中,时间步长 = 1 特征:对于单变量情况,本例所示,特征 = 1 批量大小必须是训练样本和测试样本大小的共同因素。...LSTM 还需要在每个 epoch 之后重置网络状态。为了实现这一点,我们在 epoch 上运行一个循环,在每个 epoch 中我们拟合模型并通过参数 _reset_states()_重置状态。

    1.2K30

    RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测|附代码数据

    2017 年年中,R 推出了 Keras 包 _,_这是一个在 Tensorflow 之上运行的综合库,具有 CPU 和 GPU 功能 本文将演示如何在 R 中使用 LSTM 实现时间序列预测。...请注意,训练数据集的最小和最大是用于标准化训练和测试数据集以及预测的标准化系数。这确保了测试数据的最小和最大不会影响模型。...## 逆变换 invtg = function(sle, slr, fue = c(0, 1)) 定义 定义模型 我们设置参数 stateful = TRUE 以便在处理一批样本后获得的内部状态被重新用作下一批样本的初始状态...在此示例中,时间步长 = 1 特征:对于单变量情况,本例所示,特征 = 1 批量大小必须是训练样本和测试样本大小的共同因素。...LSTM 还需要在每个 epoch 之后重置网络状态。为了实现这一点,我们在 epoch 上运行一个循环,在每个 epoch 中我们拟合模型并通过参数 _reset_states()_重置状态。

    73300

    可视化场景实现剖切盒功能,简单粗暴好用!

    地形剖面主要研究地貌对降雨、气流的影响作用;纬度高度剖面图主要用来分析降雨的某些条件,湿层深厚、上干下湿、风向风速等。...而在数字孪生可视化场景中往往也需要用到剖切面功能,用以了解房屋内部构造和方便维护。 建筑楼宇都是实体,室内都是被遮挡的,对于建筑设计、楼宇管理和设备维护造成一定的困难。...如果想了解房屋内部的复杂构造情形,这时候可以利用剖切面进行几何切割,室内的构造情况露出。ThingJS剖切盒功能,能够直接在数字孪生可视化场景中呈现剖切效果。...1、创建剖切包围盒的几何体,其中type可以为plane, box, sphere等。 2、设置父物体为剖切方向的箭头,拖动指引箭头则剖切面会被激活。...3、设置剖切面样式,颜色、透明度、双面渲染,以包围盒的效果出现。

    76420

    【React】417- React中componentWillReceiveProps的替代升级方案

    componentWillReceiveProps(nextProps) { //通过this.props来获取旧的外部状态,初始 props 不会被调用 //通过对比新旧状态,来判断是否执行this.setState...并且不需要使用componentWillReceiveProps,只需要保证每次我们每次需要重置输入框时候可以有不同的key。...虽然解决了内部更新问题,但是并不能解决componentWillReceiveProps中提到的多个账户切换无法重置等问题。并且这样写的派生状态代码冗余,并使组件难以维护。...3.通过唯一属性重置非受控组件。 因为使用key我们会重置子组件所有状态,当我们需要仅重置某些字段时或者子组件初始化代价很大时,可以通过判断唯一属性是否更改来保证重置组件内部状态的灵活性。...当我们没有合适的特殊属性去匹配的时候,可以通过实例方法强制重置内部状态 //父组件 handleChange = index => { this.setState({ selectedIndex

    2.9K10

    Web Security 之 HTTP Host header attacks

    其他防御措施有: 保护绝对的 URL 地址 如果你必须使用绝对的 URL 地址,则应该在配置文件中手动指定当前域名并引用此,而不是 Host 头的。这种方法将消除密码重置中毒的威胁。...使用内部虚拟主机时要小心 使用虚拟主机时,应避免将内部网站和应用程序托管到面向公开内容的服务器上。否则,攻击者可能会通过 Host 头来访问内部域。...如何使用 HTTP Host 头测试漏洞 要测试网站是否易受 HTTP Host 攻击,你需要一个拦截代理( Burp proxy )和手动测试工具( Burp Repeater 和 Burp intruiter...如果 Host 的被传递到 SQL 语句中,这可能是可利用的。 访问受限功能 某些网站只允许内部用户访问某些功能。...网站向用户发送一封包含重置密码链接的电子邮件。用户的 token 令牌作为 query 参数包含在相应的 URL 中, https://normal-website.com/reset?

    5.6K20

    LSTM & GRU的基本原理与区别

    1.RNN的缺陷 有关RNN请参考:循环神经网络(RNN)的基本原理 RNN在构建实际应用程序语言翻译、文本分类和更多的序列化问题方面常见,but在处理大型序列时存在梯度消失和梯度爆炸等问题。...但是在训练LSTM网络时,过小的会使得遗忘门的比较小,这意味着前一时刻的信息大部分都丢失了,这样网络很难捕捉到长距离的依赖信息。 并且相邻时间间隔的梯度会非常小,这会导致梯度弥散问题。...因此遗忘门的参数初始一般都设得比较大,其偏置向量 图片 设为1或2。...具体来讲,GRU将遗忘门和输入门合并成更新门,将内部记忆单元和隐藏层输出合并成重置门,进而让整个结构变得更加简单,性能可能会有所增强。...3.2 工作原理 重置门 图片 与候选状态 图片 的表达式为: 图片 重置门用于控制候选状态是否依赖上一时刻状态,通过重置门 图片 的表达式我们可以发现: 1.当 图片 时,候选状态只与当前输入

    63610

    SQL命令 TRUNCATE TABLE

    描述 TRUNCATE TABLE命令从表中删除所有行,并重置所有表计数器。 可以直接截断表,也可以通过视图截断表。 通过视图截断表会受到删除要求和限制,CREATE view中所述。...TRUNCATE TABLE重置用于生成RowID字段、IDENTITY字段和SERIAL(%Library.Counter)字段连续整数值的内部计数器。...对表的所有行执行DELETE操作不会重置这些内部计数器。 TRUNCATE TABLE重置用于在数据插入到流字段时生成流字段OID内部计数器。...DELETE不会重置内部计数器。 TRUNCATE TABLE为从其他数据库软件迁移代码提供了兼容性。 截断一个表: 表必须存在于当前(或指定)命名空间中。...参照完整性 IRIS使用系统范围的配置设置来确定是否执行外键引用完整性检查; 默认是执行外键引用完整性检查。 可以在系统范围内设置此默认外键引用完整性检查中所述。

    1.8K30

    Flutter 中键盘弹起时,Scaffold 发生了什么变化

    removeTopPadding) 所以如下图代码所示 body 在添加时,它父级的MediaQueryData 会被重载,特别是 removeTopPadding 会被清空,viewInsets.bottom 也是会被重置...如下图所示,在键盘弹起和不弹起时可以看到 padding 是不同的,而 viewInsets.bottom 都为 0。...自然就是前面分析过的 _BodyBuilder 里的通过 copyWith 得到新的 MediaQuery,所以 CustomWidget 得到的 MediaQueryData 其实在 Scaffold 内部已经被重置了...事实上这得从 MaterialApp 说起,在 MaterialApp 内部的深处嵌套着一个叫 _MediaQueryFromWindow 的 Widget ,它在内部通过 WidgetsBinding.instance.addObserver...image 那么到这里,你知道如何在 Flutter 里正确地去获取键盘的高度了吧?

    2K20
    领券