переопределение кнопки возврата устройства во Flutter - PullRequest
0 голосов
/ 20 июня 2020

Я хочу переопределить Кнопка возврата устройства , я пробовал willowpopscope(), но это добавляет кнопку возврата в верхнее приложение, или мы можем назвать это панелью приложений.

Но я не хочу использовать вверху кнопка возврата Я хочу переопределить кнопку возврата устройства (Мобильная система). Например, я хочу go на определенную страницу / действие при нажатии кнопки возврата устройства. Как я могу этого добиться?

Примечание: willowpopscope только добавляет кнопку возврата на панель приложения, не делая ничего, связанного с кнопкой возврата устройства.

1 Ответ

0 голосов
/ 20 июня 2020

Используйте back_button_interceptor , который был опубликован несколько дней как go. это помогает переопределить кнопку возврата устройства

Синтаксис для использования back_button_interceptor:

@override
void initState() {
   super.initState();
   BackButtonInterceptor.add(myInterceptor);
}

@override
void dispose() {
   BackButtonInterceptor.remove(myInterceptor);
   super.dispose();
}

bool myInterceptor(bool stopDefaultButtonEvent) {
   print("BACK BUTTON!"); // Do some stuff.
   return true;
}

вот как вы можете переопределить фактическую кнопку возврата устройства

теперь посмотрим на пример

import 'package:back_button_interceptor/back_button_interceptor.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyWidget extends StatefulWidget {
  @override
  ListTab createState() => ListTab();
}
class ListTab extends State<MyWidget> {
  void initState() {
    super.initState();
    BackButtonInterceptor.add(myInterceptor);
  }

  @override
  void dispose() {
    BackButtonInterceptor.remove(myInterceptor);
    super.dispose();
  }

  bool myInterceptor(bool stopDefaultButtonEvent) {
    Navigator.push(context,
        MaterialPageRoute(builder: (context)=>App())
    );
    return true;
  }
    @override
    Widget build(BuildContext context) {
        return new Scaffold(
          body: new Center(
            child: new Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
            Container(
            child: new Text(
              "USER_PAGE",
            ),
          ),

      ])));
      }


}

: D done !!

...