Как динамически добавлять уведомления в список с помощью флаттера? - PullRequest
0 голосов
/ 03 августа 2020

Итак, я получаю свои уведомления с помощью firebase, но я хочу отображать каждое уведомление как динамическое c представление списка, которое добавляет новые уведомления. Также помогает любая информация о том, как использовать этот класс на домашней странице. Любая помощь приветствуется!

if (Platform.isIOS) {
  iosSubscription = _fcm.onIosSettingsRegistered.listen((data) {
    print(data);
    _saveDeviceToken();
  });

  _fcm.requestNotificationPermissions(IosNotificationSettings());
} else {
  _saveDeviceToken();
}

_fcm.configure(
  onMessage: (Map<String, dynamic> message) async {
    print("onMessage: $message");
    // final snackbar = SnackBar(
    //   content: Text(message['notification']['title']),
    //   action: SnackBarAction(
    //     label: 'Go',
    //     onPressed: () => null,
    //   ),
    // );

    // Scaffold.of(context).showSnackBar(snackbar);
    showDialog(
      context: context,
      builder: (context) => AlertDialog(
        content: ListTile(
          title: Text(message['notification']['title']),
          subtitle: Text(message['notification']['body']),
        ),
        actions: <Widget>[
          FlatButton(
            color: Colors.amber,
            child: Text('Ok'),
            onPressed: () => Navigator.of(context).pop(),
          ),
        ],
      ),
    );
  },
  onLaunch: (Map<String, dynamic> message) async {
    print("onLaunch: $message");
    // TODO optional
  },
  onResume: (Map<String, dynamic> message) async {
    print("onResume: $message");
    // TODO optional
  },
);

}

1 Ответ

1 голос
/ 03 августа 2020

Думаю, это может сработать


 ListView.builder(
        itemCount: null == messagesList ? 0 : messagesList.length,
        itemBuilder: (BuildContext context, int index) {
          return Card(
            child: Padding(
              padding: EdgeInsets.all(10.0),
              child: Text(
                messagesList[index].message,
                style: TextStyle(
                  fontSize: 16.0,
                  color: Colors.black,
                ),

...