首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同步颤动中的两个TextFields

如何同步颤动中的两个TextFields
EN

Stack Overflow用户
提问于 2021-01-23 06:24:44
回答 1查看 61关注 0票数 0

假设我有两个用Flutter呈现的文本字段:"net price“和"gross price”。我想同步它们,这样当用户更新净价时,毛价就会自动计算和更新。当用户更改毛价时,应更新净价字段。如何在Flutter中实现这样的行为?

EN

回答 1

Stack Overflow用户

发布于 2021-01-23 06:46:23

我建议使用provider package来解决这个问题。

基本上,您创建了一个扩展ChangeNotifier并保存两个TextFields的值的类,然后为这两个文本小部件提供它,在一个公共的父小部件中使用:

代码语言:javascript
复制
ChangeNotifierProvider(
  create: (context) => MyClass(),
  child: MyApp(),
),

现在,每当您更改其中一个TextFields时,只需调用MyClass中的一个函数,该函数将计算另一个TextField的新值。例如:

代码语言:javascript
复制
void calculate() {
    // Some calculation and updating the values of the TextFields
    notifyListeners();
  }

请注意notifyListeners()调用,它告诉侦听此模型的小部件进行重新构建。

要了解此模型,请将文本小部件包装在消费者中,如下所示:

代码语言:javascript
复制
return Consumer<MyClass>(
builder: (context, myClass, child) {
  return Text("Total price: ${myClass.netPrice}");
});

您可以从颤动状态管理tutorial中了解更多信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65853533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档