如何在颤动中制作变量列表?

Posted

技术标签:

【中文标题】如何在颤动中制作变量列表?【英文标题】:How to make a list of variables in flutter? 【发布时间】:2019-03-14 05:06:48 【问题描述】:

我想在颤振中创建一个包含变量的列表。现在,当我尝试编辑列表的内容时,它实际上存储在列表本身中。例如,

static var _ratingSelected = "";
static var _disconnectSelected = "";
static var _uTypeSelected = "";

List finalSelectedList = [_uTypeSelected,_disconnectSelected,_ratingSelected];

这是我的列表,当我将编辑列表时,例如,

finalSelectedList[0] = "Main";

输出列表会是这样的

finalSelectedList = ["Main",_disconnectSelected,_ratingSelected];

它将编辑列表的 finalSelectedList[0] 位置,但不会编辑变量 _uTypeSelected有什么方法可以将值存储在变量 _uTypeSelected 中而不是位置 finalSelectedList[0]

【问题讨论】:

请发布您的尝试Minimal, Complete, and Verifiable example,注明输入和预期输出。 当我将值存储在 0 位置 的列表中时,我希望它实际存储在变量 _uTypeSelected 中并且它不应该编辑实际列表(该列表仅包含这些变量)。 字符串是不可变的,所以你不能改变状态。 【参考方案1】:

没有办法做到这一点。如果您使用finalSelectedList[0].someProp = "Main";,其中变量是某些具有someProp 属性的类的实例,那么它会起作用,因为还有一个额外的抽象。字符串是原始值,添加到列表时按值复制,因此列表条目和变量之间没有任何连接。

class Foo 
  Foo(this.someProp);
  String someProp;

static var _ratingSelected = Foo("");
static var _disconnectSelected = Foo("");
static var _uTypeSelected = Foo("");

List finalSelectedList = [_uTypeSelected,_disconnectSelected,_ratingSelected];
finalSelectedList[0].someProp = "Main";

【讨论】:

以上是关于如何在颤动中制作变量列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中制作水平滚动动画

如何在这张图片中将多个列表视图添加到 sliver 列表中 - 颤动

如何在颤动中使用listview builder制作动态单选按钮?

如何在颤动中将格式从列表视图更改为网格视图?

如何从颤动的列表中获取特定信息

如何在颤动中制作音频修剪小部件