📅  最后修改于: 2023-12-03 14:41:15.953000             🧑  作者: Mango
NavigationRail
是 Flutter 中的一个小部件,用于在应用中添加导航栏。它通常用于桌面应用程序或平板电脑应用程序,但也可以在智能手机应用程序中使用,特别是当想要向用户提示导航选项时。
以下是 NavigationRail
小部件的主要特点:
下面是使用 NavigationRail
小部件的基本步骤:
NavigationRail
小部件并将其包装在 Scaffold
中下面是一个简单的示例代码:
class ExampleNavigationRail extends StatefulWidget {
@override
_ExampleNavigationRailState createState() => _ExampleNavigationRailState();
}
class _ExampleNavigationRailState extends State<ExampleNavigationRail> {
int _selectedIndex = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Row(
children: [
NavigationRail(
backgroundColor: Colors.blue,
selectedIconTheme: IconThemeData(color: Colors.white),
unselectedIconTheme: IconThemeData(color: Colors.white70),
selectedIndex: _selectedIndex,
onDestinationSelected: (int index) {
setState(() {
_selectedIndex = index;
});
},
labelType: NavigationRailLabelType.none,
destinations: [
NavigationRailDestination(
icon: Icon(Icons.home),
selectedIcon: Icon(Icons.home_filled),
label: Text('Home'),
),
NavigationRailDestination(
icon: Icon(Icons.search),
selectedIcon: Icon(Icons.search),
label: Text('Search'),
),
NavigationRailDestination(
icon: Icon(Icons.person),
selectedIcon: Icon(Icons.person),
label: Text('Profile'),
),
],
),
VerticalDivider(thickness: 1, width: 1),
Expanded(
child: Center(
child: Text('Selected index: $_selectedIndex'),
),
),
],
),
);
}
}
此代码定义了一个具有三个导航选项的 NavigationRail
小部件,并在屏幕的右侧显示一个文本,以便用户看到其所选索引。此代码还展示如何使用 onDestinationSelected
回调函数来捕获用户的选择,并在 UI 中响应所选的项目。
如果您正在开发一款桌面应用程序或平板电脑应用程序,并且需要一个自定义导航栏,那么 NavigationRail
小部件可能是您需要的东西。此外,即使您正在开发智能手机应用程序,也可以使用此小部件来向用户提供导航选项。在 Flutter 的帮助下,您可以轻松创建美观且易于使用的导航栏。