Я прячу свой bottomnavigationbar
на свитке. Скрытие работает должным образом, но панель навигации считает, что это проблема, и отображает предупреждающее сообщение о переполнении рендеринга. Как мне это исправить?
Я использую scopedModel для прослушивания boolean
при прокрутке. mainModel
- мой scopedModel
class. 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
)
);
}
)
)
);
}
Я ожидаю, что сообщение с предупреждением о переполнении исчезнет. Скрытие анимации работает безупречно, как и ожидалось.