Flutter 与内存变化的交互

Posted

技术标签:

【中文标题】Flutter 与内存变化的交互【英文标题】:Flutter interaction with change in memory 【发布时间】:2020-02-13 04:53:30 【问题描述】:

我试图了解当底层内存项更改时,由内存项填充的颤振小部件的行为方式。我的用例是:通过触发某些事件(使用 EventBus 包),这个底层内存项可能会或可能不会改变。如果是这样,那么我想触发一个 setState(),但不是因为我不想不必要地调用它。请帮助我了解如何实现这一点。目前 onclick 改变了 str 但 Text 小部件没有改变。我的例子 - 按钮单击(充当事件触发器)更改填充 Text 项的底层 str 项。提前致谢。

  class _MainApp extends State<MainApp>
  @override
  String str = "1";
  Widget build(BuildContext context)
    return MaterialApp(
      home: Scaffold(
        body: Column(
          children: <Widget>[
            CustomText(),
            RaisedButton(onPressed: ()
            print(CustomTextS.str);
            CustomTextS.setStr("f");
            print(CustomTextS.str);

          ,)
          ],

        ),
      ),
    );
  


class CustomText extends StatefulWidget
  CustomTextS createState() => CustomTextS();

class CustomTextS extends State<CustomText>
  static String str = "1";

  static setStr(String a)
    str = a;
  
  Widget build(BuildContext context)
    return Text(str);
  

【问题讨论】:

【参考方案1】:

目前我继续使用字符串和整数按值传递的事实。因此,人们可以利用这一事实有效地获得一份副本,可以使用该副本与更新后的值进行比较,以确定小部件的属性是否在事件操作中发生了变化。

【讨论】:

以上是关于Flutter 与内存变化的交互的主要内容,如果未能解决你的问题,请参考以下文章

flutter与native交互

Flutter和原生交互---EventChannel

Flutter和原生交互---EventChannel

Flutter和原生交互---EventChannel

Flutter和原生交互---EventChannel

Flutter 专题49 图解 Flutter 与 Android 原生交互 #yyds干货盘点#