从 Flutter 的导航抽屉中删除应用栏标题?
Remove App Bar Title from Navigation Drawer in Flutter?
我已经在 Flutter 中创建了一个导航抽屉。
此处提供源 - https://github.com/deadcoder0904/flutter_navigation_drawer
看起来像这样 -
第一个屏幕
当我点击按钮时,它会转到
第二屏
当我点击按钮时,它会转到
选项卡屏幕
当我点击 First Screen
上的汉堡包图标时,它会转到
抽屉屏风
现在当我点击抽屉屏幕上的第二个列表项时,我会得到这样的第二个屏幕
相关代码在 navigation_drawer.dart 中,看起来像 -
class NavigationDrawer extends StatefulWidget {
_NavigationDrawerState createState() => _NavigationDrawerState();
}
class _NavigationDrawerState extends State<NavigationDrawer> {
int _selectionIndex = 0;
final drawerItems = [
DrawerItem("First Screen", Icons.looks_one),
DrawerItem("Second Screen", Icons.looks_two),
DrawerItem("Tabs", Icons.tab),
];
_getDrawerItemScreen(int pos) {
switch (pos) {
case 1:
return SecondScreen();
case 2:
return Tabs();
default:
return FirstScreen();
}
}
_onSelectItem(int index) {
setState(() {
_selectionIndex = index;
_getDrawerItemScreen(_selectionIndex);
});
Navigator.of(context).pop();
}
@override
Widget build(BuildContext context) {
List<Widget> drawerOptions = [];
for (var i = 0; i < drawerItems.length; i++) {
var d = drawerItems[i];
drawerOptions.add(ListTile(
leading: Icon(d.icon),
title: Text(
d.title,
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.w400),
),
selected: i == _selectionIndex,
onTap: () => _onSelectItem(i),
));
}
return Scaffold(
appBar: AppBar(
title: Text('First Screen'),
),
drawer: Drawer(
child: Column(
children: <Widget>[
UserAccountsDrawerHeader(
accountName: Text('Akshay Kadam (A2K)'),
accountEmail: Text('a2k@gmail.com'),
),
Column(
children: drawerOptions,
),
],
),
),
body: _getDrawerItemScreen(_selectionIndex),
);
}
}
如何获得没有 Hamburger Icon
和 First Screen
标题的第二屏幕?
首先,更改您的代码以设置主页
body: _getDrawerItemScreen(_selectionIndex),
到
body: FirstScreen(),
其次,
_onSelectItem(int index) {
setState(() {
_selectionIndex = index;
_getDrawerItemScreen(_selectionIndex);
});
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => _getDrawerItemScreen(_selectionIndex),
),
);
}
我已经在 Flutter 中创建了一个导航抽屉。
此处提供源 - https://github.com/deadcoder0904/flutter_navigation_drawer
看起来像这样 -
第一个屏幕
当我点击按钮时,它会转到
第二屏
当我点击按钮时,它会转到
选项卡屏幕
当我点击 First Screen
上的汉堡包图标时,它会转到
抽屉屏风
现在当我点击抽屉屏幕上的第二个列表项时,我会得到这样的第二个屏幕
相关代码在 navigation_drawer.dart 中,看起来像 -
class NavigationDrawer extends StatefulWidget {
_NavigationDrawerState createState() => _NavigationDrawerState();
}
class _NavigationDrawerState extends State<NavigationDrawer> {
int _selectionIndex = 0;
final drawerItems = [
DrawerItem("First Screen", Icons.looks_one),
DrawerItem("Second Screen", Icons.looks_two),
DrawerItem("Tabs", Icons.tab),
];
_getDrawerItemScreen(int pos) {
switch (pos) {
case 1:
return SecondScreen();
case 2:
return Tabs();
default:
return FirstScreen();
}
}
_onSelectItem(int index) {
setState(() {
_selectionIndex = index;
_getDrawerItemScreen(_selectionIndex);
});
Navigator.of(context).pop();
}
@override
Widget build(BuildContext context) {
List<Widget> drawerOptions = [];
for (var i = 0; i < drawerItems.length; i++) {
var d = drawerItems[i];
drawerOptions.add(ListTile(
leading: Icon(d.icon),
title: Text(
d.title,
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.w400),
),
selected: i == _selectionIndex,
onTap: () => _onSelectItem(i),
));
}
return Scaffold(
appBar: AppBar(
title: Text('First Screen'),
),
drawer: Drawer(
child: Column(
children: <Widget>[
UserAccountsDrawerHeader(
accountName: Text('Akshay Kadam (A2K)'),
accountEmail: Text('a2k@gmail.com'),
),
Column(
children: drawerOptions,
),
],
),
),
body: _getDrawerItemScreen(_selectionIndex),
);
}
}
如何获得没有 Hamburger Icon
和 First Screen
标题的第二屏幕?
首先,更改您的代码以设置主页
body: _getDrawerItemScreen(_selectionIndex),
到
body: FirstScreen(),
其次,
_onSelectItem(int index) {
setState(() {
_selectionIndex = index;
_getDrawerItemScreen(_selectionIndex);
});
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => _getDrawerItemScreen(_selectionIndex),
),
);
}