作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我不使用 PopupMenuButton。
因为在我的情况下,showMenu 会更合适。
onLongPress: () => _onRoomLongPressed(context, _tappedPosition, model, room),
void _onRoomLongPressed(BuildContext context, Offset tappedPosition,
RoomsModel model, Room room) {
final RenderBox overlay = Overlay.of(context).context.findRenderObject();
showMenu(
context: context,
position: RelativeRect.fromRect(
tappedPosition & Size.zero, Offset.zero & overlay.size),
items: [
PopupMenuItem(
value: 'delete',
child: Text('delete'),
),
],
).then((String value) {
switch (value) {
case 'delete':
model.remove(room);
break;
}
});
}
不要更改 MaterialApp()
的主题。
我希望 PopupMenuItem
的背景颜色为白色,Text
颜色为黑色。
最佳答案
您需要将打开菜单的小部件包装在 Builder
中,并将 Theme
作为此 Builder
的父级。这是让您前进的代码。
@override
Widget build(BuildContext context) {
return Theme(
data: Theme.of(context).copyWith(
cardColor: Colors.white,
textTheme: Theme.of(context).textTheme.apply(bodyColor: Colors.black),
),
child: Builder(
builder: (context) {
return RaisedButton(
child: Text("Show menu"),
onPressed: () {
showMenu(
context: context,
position: RelativeRect.fromLTRB(0, 100, 0, 0),
items: [
PopupMenuItem(child: Text("Item 0"), value: 0),
PopupMenuItem(child: Text("Item 1"), value: 1),
PopupMenuItem(child: Text("Item 2"), value: 2),
],
);
},
);
},
),
);
}
关于dart - 如何改变showMenu下PopupMenuItem的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55476915/
我想知道如何改变popUpMenu的原点,在底部应用栏正上方启动弹出窗口,无论项目数如何。与屏幕右端对齐。类似的东西(例如) Positioned(right: 0, bottom: bottomAp
我正在使用 showMenu()显示弹出菜单。通常,当您使用 PopupMenuButton 时,它具有 onSelected选项,但您似乎没有使用 showMenu()。 我尝试将 PopupMen
我的 ComposePage 有一个 TextField 和操作按钮,当按下按钮时显示菜单,但我不希望关闭键盘,在 flutter 中如何做到这一点! 最佳答案 将此代码添加到 onPress 函数中
我是一名优秀的程序员,十分优秀!