كما لديك، إن افترضنا وجود قائمة أزرار من BottomNavigationBarItem يمكننا تتبع الزر المحدد من خلال تخصيص متغير حالة يحمل ترقيمه index
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(
...
),
BottomNavigationBarItem(
...
),
BottomNavigationBarItem(
...
),
],
onTap: navigationTapped,
currentIndex: _page,
),
ولنفرض أن اسمه page_ أو أي شيء مناسب.
وعند النقر على الأزرار نحول الاستجابة لدالة مخصصة callback وهي فرضاُ navigationTapped
سوف تستقبل هذه الدالة رقم الزر المضغوط عليه، و قارنه مع متغير الحالة لديك أو مع قيمة غير مرغوبة، ثم قم بالتصرف المناسب
void navigationTapped(int page) {
if (page == 2) {
return;
} else {
setState(() {
_selectedIndex = page;
});
}
}
لاحظ إن كان قد تم نقر الزر 2 لن نعمل تغيير في اختيار الواجهة
كما يمكنك عمل ثيم مخصص مثلاً لون شفاف
Theme(
data: Theme.of(context).copyWith(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
),
child: YourWidget(),
);
كما يمكنك وضعه ضمن حاوية Container مع أبعاد 0 * 0 أو fontSize = 0