1. ホーム
  2. ヒラメキ

[解決済み】flutterはアプバー上の戻るボタンを削除します。

2022-04-10 08:21:33

質問

に表示される戻るボタンを削除する方法をご存知の方がいらっしゃいましたら教えてください。 appBar を使用する場合、flutterアプリで Navigator.pushNamed を使用して別のページに移動します。この結果ページには表示させたくない理由は、ナビゲーションから来るもので、ユーザーに logout ボタンをクリックすると、セッションが再開されます。

解決方法は?

戻るボタンを削除するには、空の new Container() leading の引数を指定します。 AppBar .

このような場合、ユーザーがデバイスのバックボタンを押して、以前のルートに戻ることができないようにしたいのではないでしょうか。そのため pushNamed を呼び出してみてください。 Navigator.pushReplacementNamed を実行すると、先のルートが消えます。

機能 pushReplacementNamed はバックスタック内の以前のルートを削除して、新しいルートに置き換えます。

後者の完全なコードサンプルは以下の通りです。

import 'package:flutter/material.dart';

class LogoutPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text("Logout Page"),
      ),
      body: new Center(
        child: new Text('You have been logged out'),
      ),
    );
  }

}
class MyHomePage extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text("Remove Back Button"),
      ),
      floatingActionButton: new FloatingActionButton(
        child: new Icon(Icons.fullscreen_exit),
        onPressed: () {
          Navigator.pushReplacementNamed(context, "/logout");
        },
      ),
    );
  }
}

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      home: new MyHomePage(),
      routes: {
        "/logout": (_) => new LogoutPage(),
      },
    );
  }
}