У меня есть приложение Flutter, которое использует DropdownMenu. Некоторые из DropdownMenuItems имеют довольно длинную метку. Я хотел бы иметь возможность обрезать метки, используя что-то вроде многоточия, или чтобы метка исчезала.
Пример кода приложения, воспроизводящего это:
import 'package:flutter/material.dart'; пустая функция() { runApp(const MyApp()); } класс MyApp расширяет StatelessWidget { const MyApp({super.key}); Список записей () { записи var = []; записей.add(const DropdownMenuEntry(value: "foo", label: "Это очень длинное сообщение, выходящее за пределы раскрывающегося меню"); возврат записей; } @переопределить Сборка виджета (контекст BuildContext) { вернуть MaterialApp( дома: SafeArea( ребенок: Эшафод( тело: DropdownMenu( ширина: 200, dropdownMenuEntries: записи() ) ) ) ); } } Это приводит к исключению, которое выглядит следующим образом:
======== Исключение, пойманное библиотекой рендеринга ============================= ====================== Во время компоновки было выдано следующее утверждение: RenderFlex переполнился на 67 пикселей справа.

============================================ ===============
Что я пробовал:
Использование DropdownMenu.menuStyle:
Выпадающее меню( MenuStyle: const MenuStyle(maximumSize: MaterialStatePropertyAll(Size(200,200))), ширина: 200, dropdownMenuEntries: записи() ) Использование DropdownMenuEntry.style:
DropdownMenuEntry( значение: "фу", label: "Это очень долго и выходит за пределы раскрывающегося меню", стиль: ButtonStyle( Максимальный размер: MaterialStatePropertyAll (Размер (200 200)), textStyle: MaterialStatePropertyAll (TextStyle (переполнение: TextOverflow.ellipsis)) ) ) Несмотря на то, что я попробовал другие варианты, мне не удалось устранить исключение переполнения.
Я обнаружил проблему на GitHub, которая, по-видимому, связана с: https://github.com/flutter/flutter/issues/126882
Но и здесь я не нашел никаких работоспособных решений.
Мобильная версия