如何根据条件在Flutter中配置Text值?

问题描述

我在Flutter应用程序中从服务器中获取了以下单个字符代码,例如“ M”,“ T”或“ B”等。

M = Manual
T = Trial
B = Baking
N = N/A
S = Source
O = Other Source

现在,在列表视图中仅配置了Text()元素,该元素必须根据检索到的代码表示“手动”,“试用”或“烘焙”等值。

如果只有2个元素可供选择,我知道如何实现三元运算符。 但是在这种情况下,有6个选项,只有一个选项可以表示。

我应该如何在Flutter ListView Builder中配置它?

 child:Text('value to be represented here')

我无法理解'if-else if-else'在这里如何工作?

解决方法

使用地图。

void main() {
  Map<String,String> values = {
    "M": "Manual","T": "Trial","B": "Baking","N": "N/A","S": "Source","O": "Other Source",};

  print(values["M"]); // Manual

  print(values["O"]); // Other Source

}
,

编写如下函数:

// The code represents the single character code
String getNameFromCode(String code){
    switch(code){
        case 'M': return 'Manual';
        case 'T': return 'Trial';
        case 'B': return 'Baking';
        case 'N': return 'N/A';
        case 'S': return 'Source';
        case 'O': return 'Other Source';
    }
}

使用该功能作为文本小部件的输入:

Text(getNameFromCode(getDataFromServer()))

我假设您需要输出一个值;我不知道您为什么需要ListView

有关此类代码的列表:

List<String> codes = getDataFromServer()
ListView.builder(
  itemCount:
  itemBuilder: (ctx,i){
    return Text(getNameFromCode(codes[i]));
  }
)