navigation ऐप्पबार पर स्पंदन वापस बटन को हटा दें




flutter (3)

मैं सोच रहा हूं कि किसी को पता है कि किसी अन्य पृष्ठ पर नेविगेटर.पॉप नामक नेविगेटर.पॉप नामक ऐपबार पर बैक बटन को हटाए जाने के तरीके का पता लगाया जा सकता है, इस कारण मैं इस पृष्ठ पर नहीं चाहता कि यह आने वाला है नेविगेशन से और मैं चाहता हूं कि उपयोगकर्ता इसके बजाय लॉगआउट बटन का उपयोग करें ताकि सत्र प्रारंभ हो।

कोई भी मदद बहुत अच्छी रहेगी।

अग्रिम में धन्यवाद


मेरा मानना ​​है कि समाधान निम्न हैं

आप वास्तव में या तो:

  • उस बदसूरत बैक बटन (:) को प्रदर्शित नहीं करना चाहते हैं, और इस प्रकार जाएं: AppBar(...,automaticallyImplyLeading: false,...) ;

  • उपयोगकर्ता को वापस जाना नहीं चाहिए - वर्तमान दृश्य को बदलकर - और इस प्रकार जाएं: Navigator.pushReplacementNamed(## your routename here ##) ;

  • उपयोगकर्ता को वापस जाना नहीं चाहिए - किसी निश्चित दृश्य को स्टैक में वापस लेना - और इस प्रकार उपयोग करें: Navigator.pushNamedAndRemoveUntil(## your routename here ##, f(Route<dynamic>)→bool); जहां च एक फ़ंक्शन है जो अंतिम दृश्य को पूरा करते हुए true लौट रहा true जिसे आप स्टैक में रखना चाहते हैं (नया एक से पहले);

  • उपयोगकर्ता को वापस जाने के लिए नहीं चाहिए - कभी - पूरी तरह से नेविगेटर ढेर के साथ खाली करना: Navigator.pushNamedAndRemoveUntil(## your routename here ##, (_) => false);

चियर्स


popNamed नामक कोई विधि नहीं है मेरा मानना ​​है कि आपको pushNamed ने pushNamed था

आप एक रिक्त new Container() को अपने AppBar के leading तर्क के रूप में पास करके वापस बटन निकाल सकते हैं।

हालांकि, अगर आप ऐसा कर पाते हैं, तो आप शायद यह नहीं चाहेंगे कि उपयोगकर्ता पहले के मार्ग पर वापस जाने के लिए डिवाइस का बैक बटन दबाएं। pushNamed को बुलाए pushNamed बजाय, Navigator.pushReplacementNamed pushNamed कॉल करने का प्रयास करें ताकि पहले के मार्ग को गायब हो सके।

बाद के दृष्टिकोण के लिए पूर्ण कोड नमूना नीचे है।

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(),
      },
    );
  }
}

AppBar में वापस बटन को निकालने का एक आसान तरीका स्वचालित रूप से सेट करना है I

appBar: new AppBar(title: new Text("App Bar without Back Button", automaticallyImplyLeading: false,),