嗯,我正在制作一个聊天应用程序,我很困惑应该选择哪个组件来呈现聊天,在SingleChildScrollView
和ListView
之间,我读了几篇文章,他们建议
SingleChildScrollView
,因为它是一个聊天应用程序,所以每个聊天气泡将不相同,因此ListView
将不具有性能。
但是,在SingleChildScrollView
中,即使列内的所有项不在ViewPort
中,或者换句话说,它们也会立即呈现。这样做不应该占用内存。
我应该选择哪一个呢?
您应该选择ListView.builder()
,因为它可以按需创建项目。
的例子:
child: ListView.builder(
reverse: true,
scrollDirection: Axis.vertical,
padding: const EdgeInsets.only(top: 35, bottom: 25),
itemCount: messages.length,
controller: controller,
itemBuilder: (context, index) {
return ChatBubble(
time: messages[index].time,
chatPartner: chatPartner,
message: messages[index].message,
isMe: messages[index].sentBy != cId ? true : false,
);
},
),
文档:https://api.flutter.dev/flutter/widgets/ListView/ListView.builder.html