dart – 如何打开PopupMenuButton?
发布时间:2020-12-14 14:55:13 所属栏目:百科 来源:网络整理
导读:如何从第二个小部件打开弹出菜单? final button = new PopupMenuButton( itemBuilder: (_) = PopupMenuItemString[ new PopupMenuItemString( child: const Text('Doge'),value: 'Doge'),new PopupMenuItemString( child: const Text('Lion'),value: 'Lion'
如何从第二个小部件打开弹出菜单?
final button = new PopupMenuButton( itemBuilder: (_) => <PopupMenuItem<String>>[ new PopupMenuItem<String>( child: const Text('Doge'),value: 'Doge'),new PopupMenuItem<String>( child: const Text('Lion'),value: 'Lion'),],onSelected: _doSomething); final tile = new ListTile(title: new Text('Doge or lion?'),trailing: button); 我想通过点击图块来打开按钮的菜单. 解决方法
这可行,但不够优雅(并且与Rainer的解决方案具有相同的显示问题:
class _MyHomePageState extends State<MyHomePage> { final GlobalKey _menuKey = new GlobalKey(); @override Widget build(BuildContext context) { final button = new PopupMenuButton( key: _menuKey,itemBuilder: (_) => <PopupMenuItem<String>>[ new PopupMenuItem<String>( child: const Text('Doge'),new PopupMenuItem<String>( child: const Text('Lion'),onSelected: (_) {}); final tile = new ListTile(title: new Text('Doge or lion?'),trailing: button,onTap: () { // This is a hack because _PopupMenuButtonState is private. dynamic state = _menuKey.currentState; state.showButtonMenu(); }); return new Scaffold( body: new Center( child: tile,),); } } 我怀疑你实际要求的是类似于https://github.com/flutter/flutter/issues/254或https://github.com/flutter/flutter/issues/8277跟踪的内容 – 将标签与控件相关联并使标签可点击的能力 – 并且是Flutter框架中缺少的功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |