Я прячу свой bottomnavigationbar
на свитке.Скрытие работает, как и ожидалось, но панель навигации считает, что это проблема, и показывает предупреждение о переполнении рендера.Как мне это исправить?
Я использую scopedModel для прослушивания boolean
при прокрутке.mainModel
- это мой scopedModel
класс.
mainModel.getShowAppBar
- это просто boolean
, который я установил в классе scopedModel.
Текущее поведение приложения, которое демонстрирует проблему:
и это моя реализация кода:
List <BottomNavigationBarItem> _showIconsOrNot(){
var iconList = [
BottomNavigationBarItem(
icon: new Container(
child: new Icon(Icons.list)
),
title: new Text("Forums"),
),
BottomNavigationBarItem(
icon: new Container(
child: new Icon(Icons.home)
),
title: new Text("Home"),
),
BottomNavigationBarItem(
icon: new Container(
child: new Icon(Icons.person)
),
title: new Text("Profile")
),
BottomNavigationBarItem(
icon: new Container(
child: new Icon(Icons.notifications)
),
title: new Text("Notifications")
)
];
return iconList;
}
@override
Widget build(BuildContext context) {
return new ScopedModel<MainModel>(
model: mainModel,
child: new Scaffold(
body: new ScopedModelDescendant<AppModel>(
builder: (context, child, model){
return SomeListView(model);
}
),
bottomNavigationBar:
new ScopedModelDescendant<AppModel>(
builder: (context, child, model){
return AnimatedContainer(
curve: Curves.bounceOut,
duration: Duration(milliseconds: 800),
height: mainModel.getShowAppBar ? 60.0 : 0.0,
child: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
currentIndex: currentIndex,
iconSize: mainModel.getShowAppBar ? 24.0 : 0.0,
selectedItemColor: Colors.black,
unselectedItemColor: Colors.grey,
items: _showIconsOrNot
)
);
}
)
)
);
}
Я ожидаю исчезновения предупреждения о переполнении.Скрытие анимации работает безупречно, как и ожидалось.