Я реализовал общий c компонент FooterMenu
, который должен отображать элементы в нижнем колонтитуле. Меню нижнего колонтитула будет во всем приложении, и я просто хотел бы включить компонент FooterMenu в виджет и передать необходимые элементы меню в качестве параметра.
import 'package:flutter/material.dart';
class FooterMenu extends StatefulWidget {
final List<Map<String, dynamic>> menuItemsMap;
List<BottomNavigationBarItem> navItems = [];
FooterMenu({Key key, @required this.menuItemsMap}) : super(key: key) {
this.buildNavItems();
}
void buildNavItems() {
menuItemsMap.forEach((element) {
navItems.add(BottomNavigationBarItem(
icon: element['icon'],
title: Text(element['text']),
));
});
}
@override
_FooterMenuState createState() => _FooterMenuState();
}
class _FooterMenuState extends State<FooterMenu> {
int _selectedIndex = 0;
_FooterMenuState(); //constructor
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: BottomNavigationBar(
items: widget.navItems,
currentIndex: _selectedIndex,
// selectedItemColor: Colors.amber[800],
onTap: _onItemTapped,
),
);
}
}
Как мне теперь включить его на страницу, которая уже определен метод build
? Возможно ли это вообще?