اذهب إلى المحتوى
  • 0

كيفية عمل onTap ل BottomNavigationBar في flutter

Marwan800

السؤال

السلام عليكم ورحمة الله وبركاته

استعمل كود BottomNavigationBar   لعرض مجموعة صفحات الكود شغال بشكل ممتاز ولكن لدي مشكله بسيطة لم استطيع حلها 

احاول تغير طريقة التنقل من خلاله حقيقي الطريقة المستعمله الان لم افهم طريقة عملها ولم استطيع التحكم بها بشكل المطلوب لهذه السبب احتاج مساعده في تغير شكل الكود قليلا

 

الكود المستهدف كالتالي:

 


  var currentTab = [
    Home(),
    list(),
    Serach(),

  ];


 body: currentTab[provider.currentIndex],


  bottomNavigationBar:BottomNavigationBar(
        currentIndex: provider.currentIndex,
        selectedItemColor: Colors.black,
        unselectedItemColor: Colors.white,
        onTap: (index) {

          provider.currentIndex = index;

        },

        items: [
          BottomNavigationBarItem(
   
            icon: new Icon(Icons.home,size: 34,),
            //icon(MyFlutterApp.),
            title: new Text('Home'),
          ),

          BottomNavigationBarItem(

            icon: new Icon(Icons.list,size: 34,),
            title: new Text('list'),

          ),
          BottomNavigationBarItem(

            icon: new Icon(Icons.search_rounded,size: 34,),

          
            title: new Text('search'),
          ),

        ],
      )



class BottomNavigationBarProvider with ChangeNotifier {
  int _currentIndex = 0;

  get currentIndex => _currentIndex;

  set currentIndex(int index) {
    _currentIndex = index;
    notifyListeners();
  }
}

 

احتاج تغير طريقة الانتقال بين الصفحات ليكون مثال على ذلك بشكل التالي او شي من هذا النوع :

_onTap(int tabIndex) {
    switch (tabIndex) {
      case 0:
        _navigatorKey.currentState.pushReplacementNamed("home");

        break;
      case 1:
        _navigatorKey.currentState.pushReplacementNamed("list");

        break;
      case 2:
        _navigatorKey.currentState.pushReplacementNamed("Serach");

        break;
    }
    setState(() {
      _currentTabIndex = tabIndex;
    });
  }

اذا كان احد عنده خبره في الموضوع ياليت يساعدنا ولككم جزيل الشكر

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

مرحبا مروان،

أعتقد أن المشكلة هي في عدم استدعاء التابع: 

notifyListeners();

في الدالة:

_onTap(int tabIndex)

حيث يمكننا بطريقة أبسط استخدام الدالة:

set currentIndex(int index)

لتصبح:

_onTap(int tabIndex) {
    switch (tabIndex) {
      case 0:
        _navigatorKey.currentState.pushReplacementNamed("home");

        break;
      case 1:
        _navigatorKey.currentState.pushReplacementNamed("list");

        break;
      case 2:
        _navigatorKey.currentState.pushReplacementNamed("Serach");

        break;
    }
    currentIndex(tabIndex);
  }

بالتوفيق

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 5‏/1‏/2021 at 00:08 قال Wael Aljamal:

مرحبا مروان،

أعتقد أن المشكلة هي في عدم استدعاء التابع: 


notifyListeners();

في الدالة:


_onTap(int tabIndex)

حيث يمكننا بطريقة أبسط استخدام الدالة:


set currentIndex(int index)

لتصبح:


_onTap(int tabIndex) {
    switch (tabIndex) {
      case 0:
        _navigatorKey.currentState.pushReplacementNamed("home");

        break;
      case 1:
        _navigatorKey.currentState.pushReplacementNamed("list");

        break;
      case 2:
        _navigatorKey.currentState.pushReplacementNamed("Serach");

        break;
    }
    currentIndex(tabIndex);
  }

بالتوفيق

شكرا لك عزيزي

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...