Flutter(Dart)のBottomNavigationBar Widgetでフッターを作成しています。
フッターを作った際に下記のようなエラーが出ましたが、解決できず大変困っています。
発生している問題・エラーメッセージ
'package:flutter/src/material/bottom_navigation_bar.dart': Failed assertion: line 191 pos 15: 'items.length >= 2': is not true.
該当のソースコード
import 'package:flutter/material.dart'; class Footer extends StatefulWidget{ const Footer(); @override _Footer createState() => _Footer(); } class _Footer extends State<Footer> { int _selectedIndex = 0; final _bottomNavigationBarItems = <BottomNavigationBarItem>[]; // アイコン情報 static const _footerIcons = [ Icons.home, Icons.textsms, Icons.access_time, Icons.content_paste, Icons.work, ]; // アイコン文字列 static const _footerItemNames = [ 'ホーム', 'トーク', 'タイムライン', 'ニュース', 'ウォレット', ]; @override void initState() { super.initState(); _bottomNavigationBarItems.add(_UpdateActiveState(0)); for ( var i = 1; i < _footerItemNames.length; i++) { _bottomNavigationBarItems.add(_UpdateDeactiveState(i)); } } /// インデックスのアイテムをアクティベートする BottomNavigationBarItem _UpdateActiveState(int index) { return BottomNavigationBarItem( icon: Icon( _footerIcons[index], color: Colors.black87, ), title: Text( _footerItemNames[index], style: TextStyle( color: Colors.black87, ), ) ); } /// インデックスのアイテムをディアクティベートする BottomNavigationBarItem _UpdateDeactiveState(int index) { return BottomNavigationBarItem( icon: Icon( _footerIcons[index], color: Colors.black26, ), title: Text( _footerItemNames[index], style: TextStyle( color: Colors.black26, ), ) ); } void _onItemTapped(int index) { setState(() { _bottomNavigationBarItems[_selectedIndex] = _UpdateDeactiveState(_selectedIndex); _bottomNavigationBarItems[index] = _UpdateActiveState(index); _selectedIndex = index; }); } @override Widget build(BuildContext context) { return BottomNavigationBar( type: BottomNavigationBarType.fixed, // これを書かないと3つまでしか表示されない items: _bottomNavigationBarItems, currentIndex: _selectedIndex, onTap: _onItemTapped, ); } }
補足情報
Flutter 1.17.1
Tools • Dart 2.8.2
下記のサイトを模写しました。
https://apps-gcp.com/introduction-of-flutter-about-header-and-footer/#BottomNavigationBar_Widget
再現しないですね。