[解決済み] Flutterで「戻る」ボタンを上書きするには?[重複している]。
2022-05-18 10:23:28
質問
<余談
ホームウィジェットで、ユーザーがシステムの戻るボタンをタップしたときに、確認ダイアログを表示して、「アプリを終了しますか?
システムバックボタンをどのようにオーバーライドして処理すればよいのかがわかりません。
どのように解決するのですか?
あなたは
WillPopScope
で実現できます。
例
import 'dart:async';
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
HomePage({Key key, this.title}) :super(key: key);
final String title;
@override
State<StatefulWidget> createState() => new _HomePageState();
}
class _HomePageState extends State<HomePage> {
Future<bool> _onWillPop() async {
return (await showDialog(
context: context,
builder: (context) => new AlertDialog(
title: new Text('Are you sure?'),
content: new Text('Do you want to exit an App'),
actions: <Widget>[
TextButton(
onPressed: () => Navigator.of(context).pop(false),
child: new Text('No'),
),
TextButton(
onPressed: () => Navigator.of(context).pop(true),
child: new Text('Yes'),
),
],
),
)) ?? false;
}
@override
Widget build(BuildContext context) {
return new WillPopScope(
onWillPop: _onWillPop,
child: new Scaffold(
appBar: new AppBar(
title: new Text("Home Page"),
),
body: new Center(
child: new Text("Home Page"),
),
),
);
}
}
は
??-operator
がチェックするのは
null
をチェックします。
を参照してください。
. これは、ダイアログの外側をクリックすると、showDialogが返されるため、重要です。
null
を返し、この場合はfalseが返されるからです。
お役に立ったでしょうか?
関連
-
[解決済み] Flutterのデバッグバナーを削除するにはどうしたらいいですか?
-
[解決済み】行の中のテキストフィールドでレイアウト例外が発生する。Unable to calculate size
-
[解決済み】flutterのwrap_contentとmatch_parentに相当するもの?
-
[解決済み】flutterはアプバー上の戻るボタンを削除します。
-
[解決済み] FlutterでAndroidの "BACK "ボタンを無効化または上書きする方法は?
-
[解決済み] Flutterでボタンの幅と高さを設定する方法は?
-
[解決済み] ポップアップ時にFlutterナビゲータの状態を再読み込みするように強制する
-
[解決済み] Widgetの高さを取得するには?
-
[解決済み] Flutterで「戻る」ボタンを上書きするには?[重複している]。
-
[解決済み] Flutterで "すりガラス "のような効果を出すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOS アプリに Flutter を追加しようとすると、コマンド PhaseScriptExecution が 0 以外の終了コードで失敗します。
-
[解決済み】Scaffold.of()がScaffoldを含まないコンテキストで呼び出された場合
-
[解決済み】FlutterでStatefulWidgetにデータを渡して、その状態のままアクセスする方法
-
[解決済み】Flutterでウィジェットをプログラム的に表示・非表示にする方法
-
[解決済み] FlutterでAndroidの "BACK "ボタンを無効化または上書きする方法は?
-
[解決済み] Flutterアプリでインターネット接続が可能かどうかを確認する
-
[解決済み] Flutterでボタンの幅と高さを設定する方法は?
-
[解決済み] フラッター エキスパンドとフレキシブル
-
[解決済み] 画面の高さと幅の決め方
-
[解決済み] dispose() の後に setState() が呼ばれる。