canonical / ubuntu-flutter-plugins

A collection of Flutter plugins and packages for Ubuntu applications.
48 stars 12 forks source link

feat: allow customizing MenuButtonBuilder style & position #310

Closed jpnurmi closed 1 year ago

jpnurmi commented 1 year ago

Screencast from 2023-07-31 15-41-35.webm

MaterialApp(
  theme: yaruDark,
  home: Scaffold(
    appBar: AppBar(),
    body: Center(
      child: SizedBox(
        width: 200,
        child: MenuButtonBuilder(
          values: const ['foo', 'bar', 'baz', 'qux'],
          menuPosition: PopupMenuPosition.under,
          menuStyle: const MenuStyle(
            minimumSize: MaterialStatePropertyAll(Size(200, 0)),
            maximumSize: MaterialStatePropertyAll(Size(200, 180)),
            visualDensity: VisualDensity(horizontal: 0, vertical: 0),
          ),
          itemStyle: MenuItemButton.styleFrom(),
          itemBuilder: (context, value, child) => IntrinsicWidth(
            child: YaruTile(
              leading: const Icon(Icons.abc),
              title: Text(value.toString()),
              subtitle: Text(value.toString()),
            ),
          ),
          child: const Text('Hello'),
        ),
      ),
    ),
  ),
)