Home > database >  How to change index of an item in list in Flutter
How to change index of an item in list in Flutter

Time:02-06

I am working on a messaging app and I need help on a feature. Chat Users are stores inside a list and it is shown in a List View. When new message come to each chatuser(item in the list) I need it change that item as first. So recent contacts will be shown first like other social medias. I need to know how to change index of it to first. For swapping I need to take two items which in this case I cant do. So when new message comes to an item that item should be the first in that list. What should I do

CodePudding user response:

have a look at this:

class Contact {
  final List<String> messages;
  final String name;
  
  Contact({required this.name, this.messages = const []});
}
  
void main() {
  List<Contact> contacts = [Contact(name: "userA"), Contact(name: "userB"), Contact(name: "userC")];
  
  void receiveMessage(String username, String message) {
    final Contact user = contacts.where((e) => e.name == username).first;
    contacts.remove(user);
    user.messages.add(message);
    contacts.insert(0, user);
  }
  
  receiveMessage("userB", "hello");
  receiveMessage("userC", "helloooo");
  receiveMessage("userB", "hello000000000");
  
  
  for (var contact in contacts) {
    print(contact.name);
    for (var message in contact.messages) {
      print(message);
    }
    print("------------------------");
  }
}
  •  Tags:  
  • Related