【发布时间】:2018-11-16 12:01:25
【问题描述】:
我试图在单击导航栏项目时显示菜单。这是我的尝试:
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 3,
child: Scaffold(
appBar: MyAppBar(
title: "Home",
context: context,
),
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(
icon: new Icon(Icons.home), title: Text('Home')),
BottomNavigationBarItem(
icon: new Icon(Icons.book), title: Text('Second')),
BottomNavigationBarItem(
icon: new PopupMenuButton(
icon: Icon(Icons.add),
itemBuilder: (_) => <PopupMenuItem<String>>[
new PopupMenuItem<String>(
child: const Text('test1'), value: 'test1'),
new PopupMenuItem<String>(
child: const Text('test2'), value: 'test2'),
],
),
title: Text('more')),
],
currentIndex: 0,
),
body: new Container()));
}
我遇到了两个问题。第一个是 NavigationBarItem 的显示。 icon 和 title 之间有一个我无法删除的填充(即使添加 padding: EdgeInsets.all(0.0))(如下图所示)。第二个是我需要准确地单击图标才能显示菜单。
当单击index=2(例如)的BottomNavigationBarItem 时,我尝试直接调用showMenu(PopupMenuButton 调用的方法)。但是如何确定菜单应该从哪里出现是很棘手的。
【问题讨论】:
标签: dart flutter flutter-layout