liqkit_ui
Containers

Context Menu

LiqContextMenu composes a LiqContextMenuPreview tile and a LiqMenu panel. The LiqContextMenuArrangement enum controls whether the menu sits below or beside the preview, and which edge it aligns to.

Below Leading

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget contextMenuBelowLeadingBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    height: 340,    child: LiqContextMenu(      preview: const LiqContextMenuPreview(size: Size(168, 132)),      menu: LiqMenu(        children: <Widget>[          LiqMenuItem(label: 'Share', onPressed: () {}),          LiqMenuItem(label: 'Copy', onPressed: () {}),          LiqMenuItem(            label: 'Delete',            style: LiqMenuItemStyle.destructive,            onPressed: () {},          ),        ],      ),    ),  );}

Below Trailing

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget contextMenuBelowTrailingBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    height: 340,    child: LiqContextMenu(      arrangement: LiqContextMenuArrangement.belowTrailing,      preview: const LiqContextMenuPreview(size: Size(168, 132)),      menu: LiqMenu(        children: <Widget>[          LiqMenuItem(label: 'Share', onPressed: () {}),          LiqMenuItem(label: 'Copy', onPressed: () {}),          LiqMenuItem(            label: 'Delete',            style: LiqMenuItemStyle.destructive,            onPressed: () {},          ),        ],      ),    ),  );}

Beside Leading

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget contextMenuBesideLeadingBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 440,    height: 260,    child: LiqContextMenu(      arrangement: LiqContextMenuArrangement.besideLeading,      preview: const LiqContextMenuPreview(size: Size(132, 168)),      menu: LiqMenu(        children: <Widget>[          LiqMenuItem(label: 'Share', onPressed: () {}),          LiqMenuItem(label: 'Copy', onPressed: () {}),          LiqMenuItem(            label: 'Delete',            style: LiqMenuItemStyle.destructive,            onPressed: () {},          ),        ],      ),    ),  );}

Basic

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';Widget contextMenuBasicBuilder(BuildContext context) {  return const SnippetFrame(child: ContextMenuBasicExample());}

Disabled Items

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';Widget contextMenuDisabledItemsBuilder(BuildContext context) {  return const SnippetFrame(child: ContextMenuDisabledItemsExample());}

Text

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';Widget contextMenuTextBuilder(BuildContext context) {  return const SnippetFrame(child: ContextMenuTextExample());}

List Items

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';Widget contextMenuListItemsBuilder(BuildContext context) {  return const SnippetFrame(child: ContextMenuListItemsExample());}

Programmatic

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';Widget contextMenuProgrammaticBuilder(BuildContext context) {  return const SnippetFrame(child: ContextMenuProgrammaticExample());}