

Flutterの勉強で、メモ帳アプリを作成しています。  
そこでshowModalBottomSheetWidgetをproviderのnotifyListeners()で再描画させたいのですができません。  
何が足りないのでしょうか？  
よければアドバイスいただけるとありがたいです。  
よろしくお願いします。

[code]

    import 'package:flutter/material.dart';
    import 'package:provider/provider.dart';
    
    class SendDiary extends StatefulWidget {
      String? destination;
      SendDiary(this.destination);
    
      @override
      State<SendDiary> createState() => _SendDiary();
    }
    
    class _SendDiary extends State<SendDiary> {
      @override
      Widget build(BuildContext context) {
        final double deviceHeight = MediaQuery.of(context).size.height;
        final double deviceWdth = MediaQuery.of(context).size.width;
        return Scaffold(
            body: TextButton(
          onPressed: () {
            showModalBottomSheet(
                isScrollControlled: true,
                context: context,
                enableDrag: true,
                builder: (context) {
                  return Consumer<ReShowModalBottomSheet>(
                      builder: (context, model, child) {
                    return Container(
                        height: deviceHeight * 0.4,
                        width: deviceWdth,
                        child: Column(children: [
                          TextButton(
    //ここでメモ帳作成画面へ遷移
                            onPressed: () async {
                              await Navigator.push(
                                  context,
                                  MaterialPageRoute(
                                      builder: (context) => WriteDiary(null)));
    //メモ帳作成後、戻ってきたタイミングで再描画
                              model.reShowModalBottomSheet();
                            },
                            child: Text('新規メモ帳作成画面へ遷移'),
                          ),
                          SingleChildScrollView(
                              physics: BouncingScrollPhysics(),
                              child: Column(children: [
                                for (int index = 0;
                                    index < diaryStorage[0].length;
                                    index++) ...{
                                  // new Consumer<ReShowModalBottomSheet>(
                                  //     builder: (context, model, child) {
                                  new TextButton(
                                    onPressed: () async {
    //ここで保存していたメモ帳（下書き）をメモ帳作成画面へ展開
                                      await Navigator.push(
                                          context,
                                          MaterialPageRoute(
                                              builder: (context) => SendWriteDiary(
                                                    null,
                                                    null,
                                                    null,
                                                    'null',
                                                    null,
                                                  )));
    //メモ帳作成画面から戻り、画面再描画
                                           model.reShowModalBottomSheet();
                                    },
                                    child: Text('下書きの数だけButtonを作成'),
                                  )
                                }
                              ]))
                        ]));
                  });
                });
          },
          child: Text('ShowModalBottomSheet'),
        ));
      }
    }
    
[/code]

＜ソースの説明＞  
Buttonを押すとshowModalBottomSheetが表示され、そこに新規メモ帳作成Buttonと今までに作成した下書きのメモ帳が動的に表示させる、といった機能を実装しようといています。  
しかし、新規メモ帳作成Buttonを押し、メモ帳作成画面へ移動したあとにメモ内容を保存し、「
Navigator.pop(context);」により戻るとnotifyListeners()が実行されても画面が再描画されません。


CC BY-SA 4.0
2023-01-04T09:43:58.170
93181
2023-01-05T13:05:52.380
2023-01-05T13:05:52.380
56362
56362
question
ios android flutter dart
providerのnotifyListeners()で再描画させたいのですができません。（同じ内容を他質問サイトに投稿させていただいております）