showOverlay method

void showOverlay({
  1. required dynamic onSelect(
    1. int index,
    2. NsgDropdownMenuItem element
    ),
  2. BuildContext? parentContext,
  3. Offset? offset,
  4. Widget? child,
})

Implementation

void showOverlay({required Function(int index, NsgDropdownMenuItem element) onSelect, BuildContext? parentContext, Offset? offset, Widget? child}) async {
  final overlay = Overlay.of(context);
  entry = OverlayEntry(builder: (context) {
    Offset curOffset = const Offset(0, 0);
    if (parentContext != null) {
      curOffset = (parentContext.findRenderObject() as RenderBox).localToGlobal(Offset.zero);
    }
    if (offset != null) {
      curOffset = offset;
    }
    return NsgDropdownMenuOverlay(
      onSelect: (index, element) {
        onSelect(index, element);
        hideOverlay();
      },
      listController: listController,
      offset: curOffset,
      widgetList: widgetList,
      entry: entry,
      child: child,
    );
  });
  overlay.insert(entry!);
}