use listview.builder

This commit is contained in:
Salvatore Giordano
2020-11-05 16:12:54 +01:00
parent 3a5ae9af01
commit 7de9206e60
+14 -9
View File
@@ -714,16 +714,19 @@ class MessageInputState extends State<MessageInput> {
], ],
color: StreamChatTheme.of(context).primaryColor, color: StreamChatTheme.of(context).primaryColor,
), ),
child: ListView( child: ListView.builder(
padding: const EdgeInsets.all(0), padding: const EdgeInsets.all(0),
shrinkWrap: true, shrinkWrap: true,
children: [ itemCount: emojis.length + 1,
Padding( itemBuilder: (context, i) {
if (i == 0) {
return Padding(
padding: const EdgeInsets.only(left: 8.0, top: 8.0), padding: const EdgeInsets.only(left: 8.0, top: 8.0),
child: Row( child: Row(
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0), padding:
const EdgeInsets.symmetric(horizontal: 8.0),
child: Icon( child: Icon(
StreamIcons.smile, StreamIcons.smile,
color: StreamChatTheme.of(context).accentColor, color: StreamChatTheme.of(context).accentColor,
@@ -737,8 +740,11 @@ class MessageInputState extends State<MessageInput> {
) )
], ],
), ),
), );
...emojis.map((emoji) => ListTile( }
final emoji = emojis[i - 1];
return ListTile(
title: Text( title: Text(
"${emoji.char} ${emoji.name.replaceAll('_', ' ')}", "${emoji.char} ${emoji.name.replaceAll('_', ' ')}",
style: TextStyle( style: TextStyle(
@@ -749,9 +755,8 @@ class MessageInputState extends State<MessageInput> {
onTap: () { onTap: () {
_chooseEmoji(splits, emoji); _chooseEmoji(splits, emoji);
}, },
)) );
], }),
),
), ),
), ),
); );