在 flutter 应用程序中显示有效载荷时的黑色背景

Black background when showing payload in flutter app

我为我的应用程序使用 flutter_local_notifications 包。当我点击通知时,负载以黑色背景出现,我必须多次按 return 按钮才能看到应用程序的页面。每次按下按钮时背景都会变亮。有什么问题?

class _StatefulListTileState extends State<StatefulListTile> {
  Color _iconColor1 = Colors.white;
  Color _iconColor2 = Colors.yellow;
  FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;

  @override
  initState() {
    super.initState();
    var initializationSettingsAndroid =
        new AndroidInitializationSettings('@mipmap/ic_launcher'); 
    var initializationSettingsIOS = new IOSInitializationSettings();
    var initializationSettings = new InitializationSettings(
        initializationSettingsAndroid, initializationSettingsIOS);
    flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
    flutterLocalNotificationsPlugin.initialize(initializationSettings,
        onSelectNotification: onSelectNotification);
  }

  @override
  Widget build(BuildContext context) {
    return new Container(
      child: new FutureBuilder(
        future: saveColors(),
        builder: (context, snapshot) {
        return new ListTile(
        title: new Text(widget.title),
        leading: new IconButton(
          icon: Icon(Icons.star, color: snapshot.data.contains('${widget.id}') ? _iconColor2: _iconColor1),
          onPressed: () {
            setState(() {
              if (snapshot.data.contains('${widget.id}')) {
                _iconColor2 = Colors.white;
                _iconColor1 = Colors.white;
                flutterLocalNotificationsPlugin.cancel(widget.id);
                snapshot.data.remove('${widget.id}');
              } else {
                _iconColor1 = Colors.yellow;
                _iconColor2 = Colors.yellow;
                _showNotification(widget.id, widget.day, widget.clock);
                snapshot.data.add('${widget.id}');
              }});},),);}));}

 Future onSelectNotification(String payload) async {
    showDialog(
      context: context,
      builder: (_) {
        return new AlertDialog(...

        );},);}

  Future _showNotification(id, day, clock) async {
    //determine hour, minute and d

    var time = new Time(hour, minute, 0);
    var androidPlatformChannelSpecifics =
      new AndroidNotificationDetails('show weekly channel id',
          'show weekly channel name', 'show weekly description');
    var iOSPlatformChannelSpecifics =
      new IOSNotificationDetails();
    var platformChannelSpecifics = new NotificationDetails(
        androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    await flutterLocalNotificationsPlugin.showWeeklyAtDayAndTime(
    id,
    widget.title,
    widget.team, 
    d,
    time,
    platformChannelSpecifics,
    payload: widget.title + '\n' + widget.team + '\n' + widget.channel);          
  }
}

如果您能给我任何帮助,我们将不胜感激。

确保您在代码中只执行一次此操作

@override
initState() {
    super.initState();
    var initializationSettingsAndroid =
            new AndroidInitializationSettings('@mipmap/ic_launcher'); 
    var initializationSettingsIOS = new IOSInitializationSettings();
    var initializationSettings = new InitializationSettings(
            initializationSettingsAndroid, initializationSettingsIOS);
    flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
    flutterLocalNotificationsPlugin.initialize(initializationSettings,
            onSelectNotification: onSelectNotification);
}