ダイアログ実装の続きをやる。
いろいろ調べてみると、AlertDialogとsimpleDialogという基本クラスがあって、自分が作ろうとしている部品はAlertDialogで作るのが適当らしいということを知る。
ていうか全然調べられてない!
他は、静的なwidgetの作成をlistViewを使わないでどうやって動的に実装するかを考えたりした。
例えば、こんな感じに静的に生成するAlertDialogのサンプルコードより
Future<void> _showMyDialog() async {
  return showDialog<void>(
    context: context,
    barrierDismissible: false, // user must tap button!
    builder: (BuildContext context) {
      return AlertDialog(
        title: Text('AlertDialog Title'),
        content: SingleChildScrollView(
          child: ListBody(
            children: <Widget>[
              // ここを動的にしたい
              Text('This is a demo alert dialog.'),
              Text('Would you like to approve of this message?'),
            ],
          ),
        ),
        actions: <Widget>[
          TextButton(
            child: Text('Approve'),
            onPressed: () {
              Navigator.of(context).pop();
            },
          ),
        ],
      );
    },
  );
}
List<Widget>を関数で返せばいいじゃないかと思って、書いたらいけました。
    List<Widget> getWordMeanWidgets() {
      List<Widget> wordMeanWidgets = new List<Widget>();
      wordMeans.forEach((element) {
        // wordMeanWidgetはカスタムwidgetクラス
        // 本来はここをDBから取得して値を入れる
        wordMeanWidgets.add(wordMeanWidget(0, "name", 0));
      });
      return wordMeanWidgets;
    }
Future<void> _showMyDialog() async {
  return showDialog<void>(
    context: context,
    barrierDismissible: false, // user must tap button!
    builder: (BuildContext context) {
      return AlertDialog(
        title: Text('AlertDialog Title'),
        content: SingleChildScrollView(
          child: ListBody(
            children: <Widget>[
              // 先の関数
         getWordMeanWidgets()
            ],
          ),
        ),
        actions: <Widget>[
          TextButton(
            child: Text('Approve'),
            onPressed: () {
              Navigator.of(context).pop();
            },
          ),
        ],
      );
    },
  );
}
とりあえず、これでいける。
いけてないのは、学ぶにつれて修正していけばいい!