पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv3.0.0

no_context_navigation

एक फ्लटर पैकेज जो कंटेक्स्ट (BuildContext) के बिना स्क्रीन (रूट्स) के बीच नेविगेट करने के लिए बनाया गया है।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
845
लाइक
20
Pub अंक
150

पैकेज इंस्टॉल करें

flutter pub add no_context_navigation

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

no_context_navigation पैकेज फ्लटर विकासकर्ताओं को BuildContext के बिना स्क्रीन के बीच नेविगेट करने की अनुमति देता है। यह ऐसे मामलों में विशेष रूप से उपयोगी है जब संदर्भ उपलब्ध नहीं होता है, जैसे एसिंक ऑपरेशन के दौरान या वैश्विक विधियों के साथ काम करते समय। इसके द्वारा एक सरल, स्थैतिक नेविगेशन API प्रदान करके, यह ऐप में रूट प्रबंधन को सरल बनाता है। पैकेज सभी प्रमुख प्लेटफॉर्म के लिए समर्थन करता है, जिनमें एंड्रॉइड, iOS, वेब, macOS, Windows और लिनक्स शामिल हैं, जिससे यह क्रॉस-प्लेटफॉर्म ऐप्स के लिए लचीला बन जाता है।

उपयोग

  • बैकग्राउंड कार्यों से नेविगेट करना
  • वैश्विक त्रुटि हैंडलर्स
  • एसिंक कॉलबैक्स
  • अवस्था प्रबंधन एकीकरण
  • एप्लिकेशन पहली बार शुरू करने की प्रक्रिया

मुख्य विशेषताएँ

  • BuildContext की आवश्यकता नहीं है
  • स्थिर नेविगेशन पद्धतियाँ
  • प्लेटफॉर्म-समर्थन
  • सरल API
  • किसी भी अवस्था प्रबंधन के साथ काम करता है

इनके लिए उपयुक्त

  • विकासकर्ता संदर्भ निर्भरता से बचना
  • जटिल राज्य तर्क वाले ऐप
  • ग्लोबल नेविगेशन उपकरण
  • बड़े पैमाने के Flutter प्रोजेक्ट
  • गैर-विजेट संदर्भ नेविगेशन

विचार योग्य बातें

  • सही प्रारंभ करने की आवश्यकता है
  • यदि प्रबंधित नहीं किया गया है, तो मार्ग रक्षकों को बाधित कर सकता है
  • विजेट-विशिष्ट नेविगेशन के लिए उपयुक्त नहीं
  • मूलभूत मार्ग संक्रमण तक सीमित
  • रूटिंग कॉन्फ़िगरेशन के साथ सबसे अच्छा उपयोग किया जाता है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

No Context Navigation

No Context Navigation Package - pub.dev

Instead of using Navigator.of(context).pushNamed or some other method like pop() or pushReplacementNamed() USING context. With this package you don't need to anymore.

This service use a GlobalKey of type NavigatorState which can be used across the entire applicaton.

Now, you only need to this:

navService.pushNamed('/detail_screen', args: 'From Home Screen');

But first, add the navigationKey to your MaterialApp's navigationKey property:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      //Over here
      navigatorKey: NavigationService.navigationKey,
      onGenerateRoute: (RouteSettings settings) {
        switch (settings.name) {
          case '/':
            return MaterialPageRoute(builder: (_) => HomeScreen());
          case '/detail_screen':
            return MaterialPageRoute(builder: (_) => DetailScreen(message: settings.arguments));
          default:
            return null;
        }
      },
    );
  }
}

Use navService object to be able to acess those methods:

import 'package:flutter/material.dart';

final NavigationService navService = NavigationService();

class NavigationService<T, U> {
  static GlobalKey<NavigatorState> navigationKey = GlobalKey<NavigatorState>();

  Future<T> pushNamed(String routeName, {Object args}) async =>
      navigationKey.currentState.pushNamed<T>(
        routeName,
        arguments: args,
      );

  Future<T> push(Route<T> route) async =>
      navigationKey.currentState.push<T>(route);

  Future<T> pushReplacementNamed(String routeName, {Object args}) async =>
      navigationKey.currentState.pushReplacementNamed<T, U>(
        routeName,
        arguments: args,
      );

  Future<T> pushNamedAndRemoveUntil(
    String routeName, {
    Object args,
    bool keepPreviousPages = false,
  }) async =>
      navigationKey.currentState.pushNamedAndRemoveUntil<T>(
        routeName,
        (Route<dynamic> route) => keepPreviousPages,
        arguments: args,
      );

  Future<T> pushAndRemoveUntil(
    Route<T> route, {
    bool keepPreviousPages = false,
  }) async =>
      navigationKey.currentState.pushAndRemoveUntil<T>(
        route,
        (Route<dynamic> route) => keepPreviousPages,
      );

  Future<bool> maybePop([Object args]) async =>
      navigationKey.currentState.maybePop<bool>(args);

  bool canPop() => navigationKey.currentState.canPop();

  void goBack({T result}) => navigationKey.currentState.pop<T>(result);
}

Hope you enjoy!

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।