![](/img/trans.png)
[英]Is Jetpack Compose BottomNavBar? How can use bottomNavbar any Example?
[英]Flutter how can i hide bottomnavbar in specific screens?
我有一個底部導航欄,但在某些頁面中我想隱藏它。 我怎樣才能做到? 例如,我想在 HomeScreen 中看到 appbar,但我不想在搜索屏幕上看到它。 我的代碼是這樣的:
Scaffold(
backgroundColor: _selectedIndex == 0 ? Colors.transparent : Colors.white,
extendBodyBehindAppBar: _selectedIndex == 0 ? true : false,
bottomNavigationBar: _navBarItems,
body: Navigator(
onGenerateRoute: (settings) {
Widget page = const HomeScreen();
if (settings.name == '/help_center') {
page = const HelpCenterScreen();
} else if (settings.name == '/search') {
page = const SearchScreen();
}
return MaterialPageRoute(builder: (_) => page);
},
),
);
使用 Visibility 小部件簡單包裝 _navBarItems:
//class variable
bool _isVisible = true;//default true
Scaffold(
backgroundColor: _selectedIndex == 0 ? Colors.transparent : Colors.white,
extendBodyBehindAppBar: _selectedIndex == 0 ? true : false,
bottomNavigationBar: Visibility(
visible: _isVisible,
child: _navBarItems,
),
body: Navigator(
onGenerateRoute: (settings) {
Widget page = const HomeScreen();
if (settings.name == '/help_center') {
page = const HelpCenterScreen();
setState(() {
_isVisible = true;
});
} else if (settings.name == '/search') {
setState(() {
_isVisible = false;
});
page = const SearchScreen();
}
return MaterialPageRoute(builder: (_) => page);
},
),
);
並使用 setState 方法更改 if else 結構中的可見性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.