mirror of https://github.com/flutter/samples.git
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.
58 lines
3.5 KiB
58 lines
3.5 KiB
8 months ago
|
# Custom Context Menus
|
||
|
|
||
|
This sample shows how to create and customize cross-platform context menus,
|
||
|
such as the text selection toolbar on mobile or the right click menu on desktop.
|
||
|
|
||
|
| ![Cascading example screenshot](https://raw.githubusercontent.com/flutter/samples/main/experimental/context_menus/screenshots/cascading.png) | ![Custom button example screenshot](https://raw.githubusercontent.com/flutter/samples/main/experimental/context_menus/screenshots/custom.png) | ![Email example screenshot](https://raw.githubusercontent.com/flutter/samples/main/experimental/context_menus/screenshots/email.png) | ![Widget example screenshot](https://raw.githubusercontent.com/flutter/samples/main/experimental/context_menus/screenshots/image.png) |
|
||
|
| --- | --- | --- | --- |
|
||
|
|
||
|
## Running the sample
|
||
|
|
||
|
Just run `flutter run` in the same directory as this README file.
|
||
|
|
||
|
## The examples
|
||
|
|
||
|
### [Anywhere](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/anywhere_page.dart)
|
||
|
Shows how to create a context menu in the parts of an app that don't related to
|
||
|
text selection. For example, a menu in a desktop app that shows when the
|
||
|
background of the app is right clicked.
|
||
|
|
||
|
### [Cascading menus](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/cascading_menu_page.dart)
|
||
|
Shows how to create a context menu with cascading submenus using
|
||
|
[SubmenuButton](https://master-api.flutter.dev/flutter/material/SubmenuButton-class.html).
|
||
|
|
||
|
### [Custom buttons](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/custom_buttons_page.dart)
|
||
|
Shows how to customize the default buttons in the existing context menus.
|
||
|
|
||
|
### [Custom menu](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/custom_menu_page.dart)
|
||
|
Shows how to use any custom widgets as the menu itself, including the option to
|
||
|
keep the default buttons.
|
||
|
|
||
|
### [Default values](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/default_values_page.dart)
|
||
|
Demonstrates how the
|
||
|
[contextMenuBuilder](https://master-api.flutter.dev/flutter/material/TextField/contextMenuBuilder.html)
|
||
|
property works with various possible values.
|
||
|
|
||
|
### [Email button](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/email_button_page.dart)
|
||
|
Shows how to create an "email" button in the default context menu that shows
|
||
|
only when an email address is selected.
|
||
|
|
||
|
### [Field types](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/field_types_page.dart)
|
||
|
Shows how context menus work in the various different field widgets:
|
||
|
EditableText, TextField, and CupertinoTextField.
|
||
|
|
||
|
### [Global selection](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/global_selection_page.dart)
|
||
|
Shows how to create a custom context menu in non-editable selection with
|
||
|
[SelectionArea](https://master-api.flutter.dev/flutter/material/SelectionArea-class.html).
|
||
|
|
||
|
### [On a widget](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/image_page.dart)
|
||
|
Shows how to make a widget show a context menu on right click or long press, in
|
||
|
this case an Image widget.
|
||
|
|
||
|
### [Modified action](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/modified_action_page.dart)
|
||
|
Shows how to modify an existing button so that a custom action is performed when
|
||
|
it is tapped.
|
||
|
|
||
|
### [Reordered buttons](https://github.com/flutter/samples/blob/main/experimental/context_menus/lib/reordered_buttons_page.dart)
|
||
|
Shows how to change the order of the default buttons.
|