flutter - 在 Flutter 中使用类以列表形式传递参数

标签 flutter dart flutter-listview

我正在 Flutter 中开发一个简单的聊天屏幕 UI。有一个用户定义的小部件 MessageBubble,它接受三个参数:sender (String)、text (String)、isMe (bool)。目前它正在被一一传递静态值,如下所示:

List<MessageBubble> messages = [
    MessageBubble(
      sender: "Me",
      text: "Hi!",
      isMe: true,
    ),
    MessageBubble(
      sender: "Not Me",
      text: "Hey, hi!",
      isMe: false,
    ),
];

我想做的是,我创建了一个像这样的 BubbleData 类:

class BubbleData {
    List <String> sender = ['Not Me', 'Not Me'];
    List <String> text = ['Hey Hi', "What's new?"];
    List <bool> isMe = [false, false];
}

现在的问题在于如何使用 ListView 构建器通过 MessageBubble 迭代这些列表项?

最佳答案

也许更好的方法是按如下方式定义 BubbleData:

class BubbleData{
   String sender;
   String text;
   bool isMe;

   BubbleData({this.sender, this.text, this.isMe});
}

然后,您使用您的数据创建一个可以迭代的列表:

List<BubbleData> bubbles = [
   BubbleData(sender: 'Not Me', text: 'Hey Mi', isMe: false),
   BubbleData(sender: 'Not Me', text: 'What\'s new?', isMe: false)
];

下一步将映射并转换为 MessageBubble 的列表:

List<MessageBubble> messages = bubbles.map((bubble) =>
   MessageBubble(
      sender: bubble.sender, 
      text: bubble.text, 
      isMe: bubble.isMe
   )
).toList();

关于flutter - 在 Flutter 中使用类以列表形式传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61714069/

相关文章:

flutter - CrossAxisAlignment 不会使列小部件居中

dart - DataTable - 使其可滚动、设置背景颜色并修复/卡住标题行和第一列

flutter - 显示图像的放大部分

flutter - Flutter 中未定义的类 'AuthResult'

flutter - 通过另一个 Widget 更改一个 Widget 的状态

sqlite - Dart-使用泛型将List <SuperType>转换为List <SubType>

flutter - 有没有办法在全屏模式下以抖动的方式播放视频?

listview - 如何在页面底部添加一个 Widget 并使用 ListView 滚动?

flutter - 当状态代码在单独的文件中定义时, ListView 不显示

listview - Flutter:到达嵌套 ListView 的底部时继续在顶部 ListView 中滚动