مقدمة : 

يعتبر البار السفلي من أكثر العناصر المستخدمة في التطبيقات , فهي تتيح للمستخدم الوصول السريع للشاشات ( Screens ) الهامة , مثل الشاشة الرئيسية , الإشعارات , سلة الشراء , الملف الشخصي الخ........ , حيث خصصت فلاتر عبر Material Design أسلوباً سهلاً وبسيطاً لتضمينها في التطبيقات عبر كلاس BottomNavigationBar .

 

كيف يتم تضمينه في التطبيق : 

يعتبر البار السفلي أحد بارمترات ( عناصر ) الواجهة scaffold من Material Design وله الكثير من الخصائص الداخلية


مع الانتباه أن هذا البارامتر يأخذ كلاس Widget , مما يعني أنك تستطيع وضع أي Widget في الجزء السفلي بدلاً عن BottomNavigationBar , مثلاً يمكنك إضافة زر لتفيذ أمر معين في الشاشة حيث يبقى موقع هذا الزر أسفل الشاشة ولا يتأثر بالسحب للأسفل أو الأعلى Scrolling


خصائص العنصر BottomNavigationBar Paramatters : 

سنشرح في الاسطر التالية أبرز خصائص هذا العنصر مع الكود المرفق 



import 'package:flutter/material.dart';

class BottomNavExample extends StatefulWidget {
  const BottomNavExample({super.key});

  @override
  State createState() => _BottomNavExampleState();
}

class _BottomNavExampleState extends State {
  int _currentIndex = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      bottomNavigationBar: BottomNavigationBar(
        items: [
          BottomNavigationBarItem(icon: Icon(Icons.home)),
          BottomNavigationBarItem(icon: Icon(Icons.home)),
          BottomNavigationBarItem(icon: Icon(Icons.home)),
          BottomNavigationBarItem(icon: Icon(Icons.home)),
        ],
        backgroundColor: Colors.blueAccent,
        currentIndex: _currentIndex,
        selectedItemColor: Colors.white,
        unselectedItemColor: Colors.white30,
        selectedFontSize: 15,
        unselectedFontSize: 13,
        onTap: (value) {
          setState(() {
            _currentIndex = value;
          });
        },
      ),
    );
  }
}

 

items : هي البارامتر الوحيد المطلوب من بارامترات العنصر و تأخذ قيمة مصفوفة من العنصر BottomNavigationBarItem وهو عنصر بسيط يحوي أيقونة Icon و label وهو النص الظاهر تحت الأيقونة .

 

currentIndex : وتأخذ قيمة عدد طبيعي يبدأ من الصفر ويشير للعنصر الحالي المختار من مصفوفة العناصر السابقة .

 

selectedItemColor : يأخذ قيمة لون من كلاس Color , حيث يشير إلى لون العنصر المختار , ويطبق هذا اللون إلى الأيقونة والنص بدون الحاجة لتعيين لون كل واحدة في كل عنصر .

 

 

unselectedItemColor : يأخذ قيمة لون من كلاس Color , حيث يشير إلى لون العناصر الغير مختارة أو بالأصح لون كل العناصر ما عدا لون العنصر المحتار ( الحالي )  .

backgroundColor : يأخذ قيمة لون من كلاس Color , حيث يشير إلى لون الخلفية للعنصر كاملاً .

iconSize : يأخذ قيمة double ويشير إلى حجم الأيقونات في العناصر .

selectedFontSize : يأخذ قيمة double والقيمة الإفتراضية له 14.0 ويشير إلى قياس النص في label   العنصر المختار ( الحالي )  .

UnSelectedFontSize : يأخذ قيمة double والقيمة الإفتراضية له 12.0 ويشير إلى قياس النص في label   العناصر  المكونة .

elevation : معناه الارتفاع و يأخذ قيمة double ويشير إلى موقع العنصر ضمن المسقط Z 

onTap : يأخذ قيمة function تحمل متغير رقمي ( رقم العنصر المختار من مصفوفة العناصر ) حيث يمكنك تمرير switch وتنفيذ أمر لكل رقم من أرقام عناصر المصفوفة