You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansu_ui/lib/pop_up_menu/pop_up_menu.dart

32 lines
820 B

import 'package:ansu_ui/utils/screen_adapter.dart';
import 'package:ansu_ui/extension/num_extension.dart';
import 'package:flutter/material.dart';
/// ## 弹框菜单
///```dart
/// showASPopUpMenu<int>(
/// context: context,
/// items: [
/// PopupMenuItem(child: 'test'.text, value: 1),
/// ],
/// ).then((value) {});
/// ```
Future<T> showASPopUpMenu<T>({
@required BuildContext context,
@required List<PopupMenuEntry<T>> items,
}) async {
final RenderBox renderBox = context.findRenderObject();
Offset offset = renderBox.localToGlobal(Offset.zero);
return await showMenu(
context: context,
position: RelativeRect.fromLTRB(
offset.dx,
offset.dy,
screenWidth,
screenHeight,
),
items: items,
shape: RoundedRectangleBorder(borderRadius: 10.radius),
);
}