Closed7

Flutter 開発覚え書き

Kenta WatashimaKenta Watashima

ElevatedButton の theme を設定する

return MaterialApp(
  theme: ThemeData.dark().copyWith(
    elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
        onPrimary: Colors.white,
        primary: Colors.grey[900],
      ),
    ),
  ),
);
Kenta WatashimaKenta Watashima

WillPopScene で back ボタンの処理を上書きして、back ボタン押下時にアラートを出す
OK タップで前の画面に遷移する。Cancel タップ時は何もしない


Widget build(BuildContext context) {
  final scaffold = Scaffold(
    ...
  );

  return WillPopScope(
    onWillPop: () async {
      final result = await showDialog<int>(
        context: context,
        barrierDismissible: false,
        builder: (BuildContext context) {
          return AlertDialog(
            content: const Text('Are you sure you want to go back?'),
            actions: <Widget>[
              FlatButton(
                onPressed: () => Navigator.of(context).pop(0),
                child: const Text('Cancel'),
              ),
              FlatButton(
                onPressed: () => Navigator.of(context).pop(1),
                child: const Text('OK'),
              ),
            ],
          );
        },
      );
      return result == 1;
    },
    child: scaffold,
  );
}
このスクラップは2021/11/25にクローズされました