Пользовательская панель навигации Flutter - PullRequest
0 голосов
/ 13 марта 2019

У меня проблема с пользовательской панелью навигации.Я не могу изменить страницу в теле.Я положил 4 разных текста для испытаний.Позже я хочу иметь виджеты Somo с различными страницами._BuildItem находится в другом виджете, но на той же странице.

class InicioPage extends StatefulWidget {
final int selectedIndex = 0;
  @override
  State<StatefulWidget> createState() {
    return InicioPageState(selectedIndex);
  }
}

class InicioPageState extends State<InicioPage> {
  int selectedIndex;
  InicioPageState(this.selectedIndex);

  final pages = [Text('page 0'),Text('page 1'),   ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 1,
        title: Text('Title of App'),     ),
      bottomNavigationBar: BottomNavBar(selectedIndex),
      body: pages[selectedIndex],      );     }    }

Вот панель навигации.Я вырезал некоторые части, которые не важны, потому что символы.

class BottomNavBar extends StatefulWidget {
  final int selectedIndex;
  BottomNavBar(this.selectedIndex);
  @override
  State<StatefulWidget> createState() {
    return BottomNavBarState(selectedIndex);
  },}

class BottomNavBarState extends State<BottomNavBar> {
  int selectedIndex;
   BottomNavBarState(this.selectedIndex);
    List<NavigationItem> items = [
    NavigationItem(Icon(Icons.home), Text('Home')),
    NavigationItem(Icon(Icons.location_city), Text('Props')),
      ];
 @override
  Widget build(BuildContext context) {
    return Container(
    child: Row(
    children: items.map((item) { var itemIndex = items.indexOf(item);
    return GestureDetector(  onTap: () {   setState(() {
                  selectedIndex = itemIndex;
                });           },
              child: _buildItem(item, selectedIndex == itemIndex),
            );
          }).toList(),
        ));
  }
}

1 Ответ

0 голосов
/ 13 марта 2019

Не передавайте параметры в вашем BottomNavBarState через конструктор, просто используйте вместо него

widget.selectedIndex
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...