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

السؤال

نشر

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

تحيه طيبه للجميع 

لدي استفسار لو تكرمتو اذا احد معه فكره كيف يمكن حل هذه المشكلة.

 

لدي صفحة لعرض BottomNavigationBar من خلالها اعرض صفحتين مختلفات بحيث انه المستخدم يشاهد من خلالها الصفحات على سبيل المثال A AND B

المشكله الان انا محتاج اعمل في الصفحة A خاصية البحث بحيث انه المستخدم قادر يبحث ويعرض النتائج في LIST الى هنا كل شي تمام المشكلة اني ارغب بوضع شريط البحث في  AppBar المشكله الان لو وضعت AppBar في الصفحة A  سوف يظهر تحت AppBar الي في الشاشة الرئيسية الي هيا شاشة  BottomNavigationBar

 

ولو وضعت كود البحث والاستعلام في شاشة BottomNavigationBar ما رح استفيد شي بسبب وجود list في الصفحة A  ولو قمت بعمل list مختلفة في صفحة BottomNavigationBar ما رح تظهر اتوقع بسبب ان هذا القائمة تكون اسفل القائمة التي تاتي من BottomNavigationBar او من الصفحة A باصح التعبير

 

كيف يمكن حل هذا المشكله هل لدى احدكم فكره ؟ بحيث ان شريط البحث بيكون في AppBar في الشاشة الرئيسي ويستطيع المستخدم استعماله في الشاشة A

Recommended Posts

  • 0
نشر

مرحبا مروان،

هل يمكنك تزويدنا بالشيفرة البرمجية من فضلك، مع عرض صور لكيفية العرض.

شكرا لك

يمكنك تجريب الفكرة التالية:

هي طريقة عزل المكونات عن بعضهم و عمل حاوية للجزء الداخلي و تعديل العرض الخاص ب AppBar مع فتح التبويب المناسب بين A - B بوضع شروط و التحكم ب state.

يمكنك التحكم بكل ما يلزم من خلال وضع الشروط المناسبة و التحكم في state بوضع متحولات و استدعاء إجرائيات تعديل القيم.

 

  • 0
نشر
بتاريخ 8 ساعات قال Wael Aljamal:

مرحبا مروان،

هل يمكنك تزويدنا بالشيفرة البرمجية من فضلك، مع عرض صور لكيفية العرض.

شكرا لك

يمكنك تجريب الفكرة التالية:

هي طريقة عزل المكونات عن بعضهم و عمل حاوية للجزء الداخلي و تعديل العرض الخاص ب AppBar مع فتح التبويب المناسب بين A - B بوضع شروط و التحكم ب state.

يمكنك التحكم بكل ما يلزم من خلال وضع الشروط المناسبة و التحكم في state بوضع متحولات و استدعاء إجرائيات تعديل القيم.

 

مرحبا اخي شاكر لك ردك عزيزي

استفسار لو سمحت هل يمكن اخفاء عناصر من الصفحة الثانية عن طريق الصفحة الاول؟

انا امتلك هذا الككود في الصفحة الاول الذي ارغب باخفاه من الصفحة الثانية

  bool visibles = false ;
Visibility(
              visible: visibles,
              child: Container(
        child: TextField(
                  decoration: InputDecoration(
                    contentPadding: EdgeInsets.all(15.0),

                    hintText: 'Filter by name or email',
                  ),
),
),
),

 

واتحكم به من خلال الكود التالي:

  void  searchPressed() {
  if (visibles ==true) {
      visibles = false;
     

    }else if (visibles ==false){

      visibles = true;

    }

  }

 

بشكل هاذا الكود شغال 100%100 لو قمت بتحكم به من خلال الصفحة نفسها على سبيل المثال من خلال الكود التالي:

 

  Container(
             child: new FlatButton(
               onPressed: () {
    setState(() { searchPressed();});

               },
               child: new Text('tese',style: TextStyle(fontSize: 16,),),
             )
         ),

 

 

والان ارغب باخفاه من صفحة مختلفة وقمت باستدعاه كالتالي:

 

 final PageA ani= new PageA();

  Container(
             child: new FlatButton(
               onPressed: () {
    setState(() { ani.searchPressed();});

               },
               child: new Text('test',style: TextStyle(fontSize: 16,),),
             )
         ),

الكود يرسل الامن قمت باختبار ذلك من خلال print(''):

وقمت بمشاهدة المسج من خلالها ولكن المشكله لا يقوم بعملية الاخفاء او الاظهر لا اعلم لماذا مع انني متاكد اني قد وصلت الى الميثود searchPressed() 

 

هل يوجد خطاء في طريقتي ؟ ام هل توجد طريقة مختلفه لعمل ذلك؟ 

سوف اقوم باخفاء القائمة التي في الاعلى من اجل ان استعمل شريط البحث في القائمة التي في الاسفل

  • 0
نشر

مرحبا مروان،

للتحكم بالحالة بين عدة screens علينا استخدام نظام إدارة الحالة وهي مكتبات مصممة لهذا الغرض.

مثل BLoC و Redux.

في الحالات البسيطة يمكنك عمل ذاكرة مشتركة بين حالات التطبيق بالاعتماد على SharedPreference

وتعريف متحولات للتحكم بالعرض، ستكون هكذا قابلة للقراءة و التعديل من جميع Screens في التطبيق.

لاتنسى أن إعادة بناء الواجهة بعد تعديل الحالة ستقوم بإعادة استدعاء الدالة Build و التي ستبني المكونات الخاصة للعرض ويمكنك خلالها قراءة قيم التحكم من SharedPreference مثلا وبناء الواجهة كما يحلو لك.

مثال لإدارة الحالة باستخدام BloC pattern

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...