我使用类Boards
获取从departures
API返回的前5组数据,并将它们放入返回的解析后的Json
列表中。
var mappedList = boards.departures!.take(5).toList();
然后我将其映射为一个重复列表,并选择我想要的数据。
var mappedValues = mappedList.map((m) => {
ListBody(
children: <Widget>[
RichText (
text: TextSpan(
children: <TextSpan> [
TextSpan(text: "nnDestination ",
style: TextStyle(
fontSize: 22 ,
fontWeight: FontWeight.w400,
color: Color(0xff2F2F2F),
)
),
TextSpan(text: m.transport!.headsign.toString(), style: TextStyle(
fontSize: 18 ,
fontWeight: FontWeight.w400,
color: Color(0xff2F2F2F),
fontFamily: 'DMSans'
)
),
TextSpan(text: "nnNo.",
style: TextStyle(
fontSize: 22 ,
fontWeight: FontWeight.w400,
color: Color(0xff2F2F2F),
)
),
TextSpan(text: m.transport!.name.toString(), style: TextStyle(
fontSize: 18 ,
fontWeight: FontWeight.w400,
color: Color(0xff2F2F2F),
fontFamily: 'DMSans'
)
),
]
)
)
])}).toList();
然后我将其传递给元数据
Metadata metadata = new Metadata();
metadata.setCustomValue("ListBody", ListBodyMetadata(mappedValues));
mapMarker.metadata = metadata;
我有一个标题,然后是每行中的数据。
我尝试过在ListBody中使用映射数据的不同方法,我认为这将是最好的方法。我只是无法将它传递给元数据,因为它是List<Set<ListBody>>
,而不是我需要的ListBody
。
我曾尝试为List<Set<ListBody>>
设置一个元数据类,但它并没有像预期的那样工作。ListBody在我的应用程序中运行良好,我只需要将此数据集作为一个数据集传递到元数据中。
感谢,任何关于如何传递数据的提示都将不胜感激
我想你想要的是这个?。从那时起,您就有了一个包含多个文本小部件的ListBody,而不是一个ListBody列表(包含1个文本小程序(
var mappedValues = ListBody(
children: mappedList.map((m) => RichText ()).toList(),
);
关于如何使用RichText:的示例
RichText(
text: TextSpan(
children: <TextSpan>[
TextSpan(
text: 'Hi, ',
style: style.onBackground(context, opacity: .7)),
TextSpan(
text: username,
style: style.onBackground(context),
),
],
),
),
```