在onPressed期间调用setState的IconButton显示没有涟漪效应

时间:2016-12-31 00:08:52

标签: flutter

在我onPressed的{​​{1}}期间,我需要更新数据库,然后更新UI,以便用户看到数据更改的反馈。为此,我致电IconButton,成功让setState重建。问题是我不再看到触摸反馈涟漪效应,因为Widget会立即重建。

Widget

2 个答案:

答案 0 :(得分:2)

问题是我正在创建一个ObjectKey,其中包含每次build期间重新创建的对象。通过使用ObjectKey和我的对象的id字段而不是对象本身解决了这个问题。

<强>为

var card = new Card(
    key: new ObjectKey(goal), //the goal object was re-created during `build`
    child: button
);

不可

var card = new Card(
    key: new ObjectKey(goal.id), // need to key off of the id field as it remains constant
    child: button
);

答案 1 :(得分:1)

那不应该停止飞溅。启动应该停止的唯一原因是,如果在IconButton和Material之间添加或删除其中一个小部件,或者更改其键,或更改Material的键,或者在树中移动Material。 (其中一些是现在框架中的错误,我希望在未来几个月内修复它们。)

您可以发布一个显示问题的最小应用吗?

与此同时,我们会在https://github.com/flutter/flutter/issues/6751https://github.com/flutter/flutter/issues/5456

跟踪问题