Commit 26d0ee4c77b28c473f1c8ad2ac49a856999a0f3d

Authored by 常守达
1 parent e7f1f86d

fix(login): 输入框粘贴气泡

@@ -94,6 +94,20 @@ class _FriendEditRemarkDialogState extends State<FriendEditRemarkDialog> { @@ -94,6 +94,20 @@ class _FriendEditRemarkDialogState extends State<FriendEditRemarkDialog> {
94 inputFormatters: [ 94 inputFormatters: [
95 LengthLimitingTextInputFormatter(widget.maxLength), 95 LengthLimitingTextInputFormatter(widget.maxLength),
96 ], 96 ],
  97 + contextMenuBuilder: (BuildContext context,
  98 + EditableTextState editableTextState) {
  99 + // 获取默认的菜单项列表
  100 + List<ContextMenuButtonItem> buttonItems =
  101 + editableTextState.contextMenuButtonItems;
  102 +
  103 + // 例如:只保留“粘贴” (Paste)
  104 + buttonItems.removeWhere((item) =>
  105 + item.type != ContextMenuButtonType.paste);
  106 + return AdaptiveTextSelectionToolbar.buttonItems(
  107 + anchors: editableTextState.contextMenuAnchors,
  108 + buttonItems: buttonItems,
  109 + );
  110 + },
97 decoration: InputDecoration( 111 decoration: InputDecoration(
98 border: InputBorder.none, 112 border: InputBorder.none,
99 hintText: widget.hintText, 113 hintText: widget.hintText,
@@ -137,6 +137,20 @@ class _EditorCard extends StatelessWidget { @@ -137,6 +137,20 @@ class _EditorCard extends StatelessWidget {
137 child: TextField( 137 child: TextField(
138 controller: controller.themeNameController, 138 controller: controller.themeNameController,
139 maxLength: 10, 139 maxLength: 10,
  140 + contextMenuBuilder:
  141 + (BuildContext context, EditableTextState editableTextState) {
  142 + // 获取默认的菜单项列表
  143 + List<ContextMenuButtonItem> buttonItems =
  144 + editableTextState.contextMenuButtonItems;
  145 +
  146 + // 例如:只保留“粘贴” (Paste)
  147 + buttonItems.removeWhere(
  148 + (item) => item.type != ContextMenuButtonType.paste);
  149 + return AdaptiveTextSelectionToolbar.buttonItems(
  150 + anchors: editableTextState.contextMenuAnchors,
  151 + buttonItems: buttonItems,
  152 + );
  153 + },
140 decoration: InputDecoration( 154 decoration: InputDecoration(
141 counterText: '', 155 counterText: '',
142 hintText: context.l10n.watchThemeNameMaxLength, 156 hintText: context.l10n.watchThemeNameMaxLength,
@@ -72,6 +72,20 @@ class _WatchThemeRenameDialogState extends State<WatchThemeRenameDialog> { @@ -72,6 +72,20 @@ class _WatchThemeRenameDialogState extends State<WatchThemeRenameDialog> {
72 Expanded( 72 Expanded(
73 child: TextField( 73 child: TextField(
74 controller: _controller, 74 controller: _controller,
  75 + contextMenuBuilder: (BuildContext context,
  76 + EditableTextState editableTextState) {
  77 + // 获取默认的菜单项列表
  78 + List<ContextMenuButtonItem> buttonItems =
  79 + editableTextState.contextMenuButtonItems;
  80 +
  81 + // 例如:只保留“粘贴” (Paste)
  82 + buttonItems.removeWhere((item) =>
  83 + item.type != ContextMenuButtonType.paste);
  84 + return AdaptiveTextSelectionToolbar.buttonItems(
  85 + anchors: editableTextState.contextMenuAnchors,
  86 + buttonItems: buttonItems,
  87 + );
  88 + },
75 maxLength: 4, 89 maxLength: 4,
76 decoration: InputDecoration( 90 decoration: InputDecoration(
77 counterText: '', 91 counterText: '',
@@ -162,6 +162,20 @@ class _CommonInputDialogViewState extends State<CommonInputDialogView> { @@ -162,6 +162,20 @@ class _CommonInputDialogViewState extends State<CommonInputDialogView> {
162 focusNode: _focusNode, 162 focusNode: _focusNode,
163 autofocus: true, 163 autofocus: true,
164 maxLines: 1, 164 maxLines: 1,
  165 + contextMenuBuilder: (BuildContext context,
  166 + EditableTextState editableTextState) {
  167 + // 获取默认的菜单项列表
  168 + List<ContextMenuButtonItem> buttonItems =
  169 + editableTextState.contextMenuButtonItems;
  170 +
  171 + // 例如:只保留“粘贴” (Paste)
  172 + buttonItems.removeWhere(
  173 + (item) => item.type != ContextMenuButtonType.paste);
  174 + return AdaptiveTextSelectionToolbar.buttonItems(
  175 + anchors: editableTextState.contextMenuAnchors,
  176 + buttonItems: buttonItems,
  177 + );
  178 + },
165 inputFormatters: [ 179 inputFormatters: [
166 LengthLimitingTextInputFormatter( 180 LengthLimitingTextInputFormatter(
167 widget.dialogMetaData.maxLength, 181 widget.dialogMetaData.maxLength,