Skip to content

Conversation

@TahaTesser
Copy link
Member

@TahaTesser TahaTesser commented Feb 22, 2024

fixes MenuItemButton does not constrain its child
fixes DropdownMenuEntry Text Overflow when width of DropdownMenu is not specified

Description

  • This PR continues the fix from Fix menu item overflow #141314 (comment) and adds controlled widths for the MenuBar children to fix the unbounded width issue which blocked the PR earlier. (Widgets with non-zero flex value cannot be laid out in a horizontal scroll view which is created by MenuBar widget)
  • Added tests coverage.
  • Added documentation.

Code sample

expand to view the code sample
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  MenuController menuController = MenuController();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: [
              DropdownMenu<int>(
                expandedInsets: EdgeInsets.zero,
                dropdownMenuEntries: <DropdownMenuEntry<int>>[
                  DropdownMenuEntry<int>(
                    value: 0,
                    label:
                        'This is a long text that is multiplied by 10. ' * 10,
                    style: const ButtonStyle(
                      textStyle: MaterialStatePropertyAll(
                        TextStyle(overflow: TextOverflow.ellipsis),
                      ),
                    ),
                  ),
                ],
              ),
              SizedBox(
                width: 200,
                child: MenuItemButton(
                  onPressed: () {},
                  leadingIcon: const Icon(Icons.menu),
                  trailingIcon: const Icon(Icons.arrow_forward_ios),
                  child: const Text(
                    'This is a very long text that will wrap to the multiple lines.',
                    maxLines: 1,
                    overflow: TextOverflow.ellipsis,
                  ),
                ),
              ),
              // MenuBar(
              //   children: [
              //     MenuItemButton(
              //       onPressed: () {

              //       },
              //       child: Text('Short Text Menu'),
              //     ),
              //     MenuItemButton(
              //       onPressed: () {},
              //       child: Text('Very very very very very long text menu'),
              //     ),
              //   ],
              // ),
            ],
          ),
        ),
      ),
    );
  }
}

Before

before

After

after

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. labels Feb 22, 2024
@TahaTesser TahaTesser force-pushed the fix_menu_item_overflow branch from 5b73649 to a0c4069 Compare February 22, 2024 15:26
@TahaTesser TahaTesser marked this pull request as ready for review February 22, 2024 16:12
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your continued help with the fix! I'm actually thinking about the property name. Based on the doc and the name, it feels like setting menuDirection: Axis.vertical can control the menu to make it show up vertically. Not sure if that can cause any confusion.

I'm now actually thinking maybe we don't need to add an extra property here. In _MenuItemButtonState, we can have a

  _MenuAnchorState? get _anchor => _MenuAnchorState._maybeOf(context);

then we can just use _anchor._orientation to get the menu direction information(vertical or horizontal). Do you think if this makes sense?

Copy link
Member Author

@TahaTesser TahaTesser Feb 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would only work for MenuItemButton created by MenuAnchor.

When using MenuAnchor, DropdownMenu, and SubmenuButton as these create MenuAnchor state. The _anchor._orientation is null when MenuItemButton is used directly. The users might use this without MenuAnchor, as seen in #129439

So the following example would still overflow as the button is directly created.

              SizedBox(
                width: 200,
                child: MenuItemButton(
                  onPressed: () {},
                  leadingIcon: const Icon(Icons.menu),
                  trailingIcon: const Icon(Icons.arrow_forward_ios),
                  child: const Text(
                    'This is a very long text that will wrap to the multiple lines.',
                    maxLines: 1,
                    overflow: TextOverflow.ellipsis,
                  ),
                ),
              ),

Instead of just menuDirection, we could call it menuFlexDirection?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When writing test for this property, I did write comments to make it clear how this property is adjusted for the layout to flex in certain direction.

      // Test a long MenuItemButton in an unconstrained layout with vertical menuDirection.
      await tester.pumpWidget(buildMenuButton(menuDirection: Axis.vertical));
      expect(tester.getSize(find.byType(MenuItemButton)), const Size(800.0, 48.0));

      // Test a long MenuItemButton in an unconstrained layout with horizontal menuDirection.
      await tester.pumpWidget(buildMenuButton(menuDirection: Axis.horizontal));
      expect(tester.getSize(find.byType(MenuItemButton)), const Size(800.0, 48.0));

      // Test a long MenuItemButton in a constrained layout with vertical menuDirection.
      await tester.pumpWidget(buildMenuButton(menuDirection: Axis.vertical, constrainedLayout: true));
      expect(tester.getSize(find.byType(MenuItemButton)), const Size(200.0, 120.0));

      // Test a long MenuItemButton in a constrained layout with horizontal menuDirection.
      await tester.pumpWidget(buildMenuButton(menuDirection: Axis.horizontal, constrainedLayout: true));
      expect(tester.getSize(find.byType(MenuItemButton)), const Size(200.0, 48.0));
      // This should throw an error.
      final AssertionError exception = tester.takeException() as AssertionError;
      expect(exception, isAssertionError);

You're absolutely right we need to make clear for the users to avoid confusion.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The _anchor._orientation is null when MenuItemButton is used directly.

I see! You are right. I'm thinking about 3 options. One is still getting the direction from anchor, but we need to explicitly mention in the doc that these buttons are just used for menus; Other use cases might cause overflow. Because I'm not sure whether menuItemButton should be used without any menu involved🤣.

The second option is just to give a better property name, menuFlexDirection is a good one, I'm also thinking about a boolean allowHorizontalExpansion or something else. If the button is placed on a vertical menu, it is false and we do clip to avoid overflow; if it is placed on a horizontal menu, we should allow the expansion. But for this option, it is still a breaking change for MenuBars if they already use MenuItemButton. The default property value will cause exception and users need to explicitly assign a value to menuFlexDirection.

The third one is to combine the first two. We still expose this property, but if anchor is not null, the anchor direction should override the property to avoid breaking change.🙂 Let me know which one is preferred!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also let me know if I missed any other PR review!🙂 Thanks a lot!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've changed the name and condition where _anchor orientational can override the property. This implemented the third option you suggest.
01006f3

Please let me know what do you think.

@TahaTesser TahaTesser force-pushed the fix_menu_item_overflow branch from a0c4069 to 6a7d5ac Compare March 1, 2024 09:46
@TahaTesser TahaTesser force-pushed the fix_menu_item_overflow branch 3 times, most recently from a744054 to 3e9a930 Compare March 19, 2024 09:37
@TahaTesser
Copy link
Member Author

This is failing HTML tests for some reason which didn't fail earlier.

I was busy updating others today, i will finish updating this by tomorrow.

@QuncCccccc
Copy link
Contributor

This is failing HTML tests for some reason which didn't fail earlier.

I was busy updating others today, i will finish updating this by tomorrow.

I see! Please take your time! As for the web tests, it looks like #142804 also has a similar web failure and the failure is also about computeDryLayout🧐

@TahaTesser
Copy link
Member Author

TahaTesser commented Mar 19, 2024

I tried running canvaskit tests locally, they pass. Something off with HTML renderer and computeDryLayout.

@TahaTesser
Copy link
Member Author

TahaTesser commented Mar 20, 2024

This is failing HTML tests for some reason which didn't fail earlier.

Since this wasn't failing a couple of weeks ago (before my vacation), so I decided to investigated the cause.

HTML renderer tests are failing after #144577.
I can confirm this PR passes HTML tests before #144577

@LongCatIsLooong
Copy link
Contributor

The HTML render probably doesn't handle FP errors while doing line breaks. In that failing test, the input max width is 225.59999999999994 px and the intrinsic width of the text is 225.59999999999997 px, so the html renderer broke the text into 2 lines. Could you file an issue if there isn't one already, and skip that test if the HTML renderer is in use? Or you can change the font size / letterspacing used in the test so the width of the text becomes an integer.

Copy link
Contributor

@QuncCccccc QuncCccccc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM:) Thanks for the fix!

@TahaTesser TahaTesser added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 25, 2024
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Mar 25, 2024
@auto-submit
Copy link
Contributor

auto-submit bot commented Mar 25, 2024

auto label is removed for flutter/flutter/143932, due to - The status or check suite Google testing has failed. Please fix the issues identified (or deflake) before re-applying this label.

@TahaTesser TahaTesser force-pushed the fix_menu_item_overflow branch from 01006f3 to a5575cc Compare March 26, 2024 17:18
@TahaTesser
Copy link
Member Author

@QuncCccccc
This seems to be failing Google testing.

@QuncCccccc
Copy link
Contributor

@QuncCccccc This seems to be failing Google testing.

Checking!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about overflowDirection or overflowAxis as a name? This one isn't great: it has menu, which is redundant, and Flex which might indicate a Flex widget or just being "flexible", which this isn't.

@QuncCccccc
Copy link
Contributor

QuncCccccc commented Mar 27, 2024

@QuncCccccc This seems to be failing Google testing.

This seems because when the button is used in a Row, with its default setting(Axis.vertical), it will still throw exception.

@TahaTesser TahaTesser force-pushed the fix_menu_item_overflow branch from cc684a3 to bcc1d29 Compare March 28, 2024 12:21
@TahaTesser
Copy link
Member Author

TahaTesser commented Mar 28, 2024

@QuncCccccc This seems to be failing Google testing.

This seems because when the button is used in a Row, with its default setting(Axis.vertical), it will still throw exception.

This looks like an expected error given the layout. We want menu item button with vertical direction to take maximum available width (e.g. in DropdownMenu or MenuAnchor) but this wouldn't work when MenuItemButton is placed in a layout with infinite width such as Row.

The user have to wrap the widget MenuItemButton with Expanded widget or Flexible widget for the non-zero flex or provide a fixed width using a SizedBox or ConstrainedBox.

Screenshot 2024-03-28 at 15 04 42

@QuncCccccc
Copy link
Contributor

QuncCccccc commented Mar 28, 2024

@QuncCccccc This seems to be failing Google testing.

This seems because when the button is used in a Row, with its default setting(Axis.vertical), it will still throw exception.

This looks like an expected error given the layout. We want menu item button with vertical direction to take maximum available width (e.g. in DropdownMenu or MenuAnchor) but this wouldn't work when MenuItemButton is placed in a layout with infinite width such as Row.

The user have to wrap the widget MenuItemButton with Expanded widget or Flexible widget for the non-zero flex or provide a fixed width using a SizedBox or ConstrainedBox.

Screenshot 2024-03-28 at 15 04 42

Yes, you are right. For the default setting, I'm thinking whether we should set the default value to be Axis.horizontal because that would be the original implementation and should not break the existing apps. And if users need to fix the overflow issue, overflowAxis should be set to Axis.vertical. WDYT:) ?

@TahaTesser TahaTesser force-pushed the fix_menu_item_overflow branch 2 times, most recently from 8df795b to 21b17fd Compare April 1, 2024 18:07
@QuncCccccc QuncCccccc requested a review from gspencergoog April 1, 2024 19:25
Copy link
Contributor

@gspencergoog gspencergoog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

32384589-a60f0e74-c078-11e7-9bc1-e5b5287aea9d

Copy link
Contributor

@gspencergoog gspencergoog Apr 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MenuItemButton is not really created by them, but it can appear as their child. Might want to reword this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point!

@gspencergoog
Copy link
Contributor

For the default setting, I'm thinking whether we should set the default value to be Axis.horizontal because that would be the original implementation and should not break the existing apps. And if users need to fix the overflow issue, overflowAxis should be set to Axis.vertical. WDYT:) ?

Sounds good to me.

@TahaTesser TahaTesser force-pushed the fix_menu_item_overflow branch from b3a139b to f961094 Compare April 2, 2024 11:52
@QuncCccccc QuncCccccc added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 2, 2024
@auto-submit auto-submit bot merged commit 8d9dcc4 into flutter:master Apr 2, 2024
@TahaTesser TahaTesser deleted the fix_menu_item_overflow branch April 2, 2024 18:35
@TahaTesser
Copy link
Member Author

@QuncCccccc
Thank you for all the support, it wouldn't have been possible to land this without you.

engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 3, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 3, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 3, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 3, 2024
Roll Flutter from a418568 to e868e2b (34 revisions)

flutter/flutter@a418568...e868e2b

2024-04-03 [email protected] Add SegmentedButton expand feature (flutter/flutter#142804)
2024-04-03 [email protected] Roll Flutter Engine from e36b9b10c36f to 56fa2c33a5f7 (1 revision) (flutter/flutter#146205)
2024-04-03 [email protected] Roll Packages from 83f3842 to 0e848fa (3 revisions) (flutter/flutter#146201)
2024-04-03 [email protected] Enhance ColorScheme.fromSeed with a new `variant` parameter (flutter/flutter#144805)
2024-04-03 [email protected] Roll Flutter Engine from 0280de5be276 to e36b9b10c36f (1 revision) (flutter/flutter#146200)
2024-04-03 [email protected] Fix typos in bottom_sheet.dart (flutter/flutter#146188)
2024-04-03 [email protected] Roll Flutter Engine from 979030d81f8d to 0280de5be276 (2 revisions) (flutter/flutter#146199)
2024-04-03 [email protected] Roll Flutter Engine from bef3bbe3f74e to 979030d81f8d (1 revision) (flutter/flutter#146186)
2024-04-03 [email protected] Roll Flutter Engine from 5fc83bc24b2e to bef3bbe3f74e (1 revision) (flutter/flutter#146183)
2024-04-03 [email protected] Roll Flutter Engine from 0da1b2eb370a to 5fc83bc24b2e (1 revision) (flutter/flutter#146180)
2024-04-03 [email protected] Avoid calling `TextPainter.plainText` for simple static text (flutter/flutter#146084)
2024-04-03 [email protected] Roll Flutter Engine from e603f89844a9 to 0da1b2eb370a (2 revisions) (flutter/flutter#146179)
2024-04-03 [email protected] Roll Flutter Engine from ef60a95d78c1 to e603f89844a9 (3 revisions) (flutter/flutter#146177)
2024-04-03 [email protected] Fix chip baseline implementation (flutter/flutter#146162)
2024-04-03 [email protected] Roll Flutter Engine from bb4ec2d7eb39 to ef60a95d78c1 (1 revision) (flutter/flutter#146176)
2024-04-03 [email protected] Add tests for material_state_mouse_cursor.0.dart API example. (flutter/flutter#145987)
2024-04-03 [email protected] Update material_color_utilities package version to latest 0.11.1 (flutter/flutter#145959)
2024-04-03 [email protected] Roll Flutter Engine from 5f6dec8bd877 to bb4ec2d7eb39 (4 revisions) (flutter/flutter#146169)
2024-04-03 [email protected] Roll Flutter Engine from 5dbcfdc2a456 to 5f6dec8bd877 (1 revision) (flutter/flutter#146163)
2024-04-02 [email protected] Dispose FocusNode in tests. (flutter/flutter#146161)
2024-04-02 [email protected] Add `none` language strings to code blocks. (flutter/flutter#146154)
2024-04-02 [email protected] Refactor docs (flutter/flutter#145998)
2024-04-02 [email protected] Roll Flutter Engine from c60b00a20fc3 to 5dbcfdc2a456 (3 revisions) (flutter/flutter#146159)
2024-04-02 [email protected] Marks Linux_pixel_7pro complex_layout_scroll_perf_impeller__timeline_summary to be unflaky (flutter/flutter#140038)
2024-04-02 [email protected] Roll Flutter Engine from 5bf8b94505a4 to c60b00a20fc3 (2 revisions) (flutter/flutter#146157)
2024-04-02 [email protected] Refactor analyze (flutter/flutter#146138)
2024-04-02 [email protected] Implement SelectionArea triple click gestures (flutter/flutter#144563)
2024-04-02 [email protected] Roll Flutter Engine from 6883f7313da0 to 5bf8b94505a4 (2 revisions) (flutter/flutter#146152)
2024-04-02 [email protected] Fix border color is wrong for a focused and hovered TextField (flutter/flutter#146127)
2024-04-02 [email protected] Sync lints and enable `annotate_redeclares` (flutter/flutter#146144)
2024-04-02 [email protected] Implements `RenderBox.computeDryBaseline` for material render boxes (flutter/flutter#146027)
2024-04-02 [email protected] Roll Flutter Engine from 523fc953ebc8 to 6883f7313da0 (2 revisions) (flutter/flutter#146140)
2024-04-02 [email protected] Fix `MenuItemButton` overflow (flutter/flutter#143932)
2024-04-02 [email protected] Roll Packages from d5aff19 to 83f3842 (4 revisions) (flutter/flutter#146134)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

...
@lukas-pierce
Copy link

Use ConstrainedBox inside MenuItemButton:

  1. parentMaxWidth = extract from LayoutBuilder
  2. mergedStyle = themeStyle + directStyle
  3. buttonHorizontalPadding = resolve from mergedStyle for empty states set
  4. finally button inner constraints max width = parentMaxWidth - buttonHorizontalPadding
ConstrainedMenuItemButton
class ConstrainedMenuItemButton extends StatelessWidget {
  const ConstrainedMenuItemButton({
    super.key,
    this.onPressed,
    this.style,
    required this.menuWidth,
    required this.child,
  });

  final VoidCallback? onPressed;
  final ButtonStyle? style;
  final double menuWidth;
  final Widget? child;
  // ... proxy other props

  @override
  Widget build(BuildContext context) {
    final child = this.child;
    return MenuItemButton(
      style: style,
      onPressed: onPressed,
      child: child != null
          ? Builder(builder: (context) {
              // merge inherited theme style and direct style
              final themeStyle = MenuButtonTheme.of(context).style;
              const defaultStyle = ButtonStyle();

              ButtonStyle mergedStyle = themeStyle?.merge(defaultStyle) ?? defaultStyle;
              if (style != null) {
                mergedStyle = style!.merge(mergedStyle);
              }

              // for actual states, need provide own MaterialStatesController to MenuItemButton
              // but by default padding is same for all states
              const states = <WidgetState>{};

              // extract horizontal padding from merged style
              final horizontalPadding = mergedStyle.padding?.resolve(states)?.horizontal ?? 0;

              return ConstrainedBox(
                constraints: BoxConstraints(maxWidth: menuWidth - horizontalPadding),
                child: child,
              );
            })
          : null,
    );
  }
}

Usage:

class ExampleDropdown extends StatelessWidget {
  const ExampleDropdown({super.key});

  @override
  Widget build(BuildContext context) {
    return LayoutBuilder(builder: (context, constraints) {
      final menuWidth = constraints.maxWidth;
      return MenuAnchor(
        crossAxisUnconstrained: false,
        style: MenuStyle(
          fixedSize: WidgetStatePropertyAll(Size.fromWidth(menuWidth)),
        ),
        menuChildren: [
          ConstrainedMenuItemButton(
            menuWidth: menuWidth,
            onPressed: () {
              //
            },
            child: const Text(
              'first start long long long long long long long long long long long long long long long long end',
              textAlign: TextAlign.start,
              overflow: TextOverflow.ellipsis,
            ),
          ),
          MenuItemButton(
            onPressed: () {
              //
            },
            child: const Text('second'),
          ),
        ],
        builder: (BuildContext context, MenuController controller, Widget? child) {
          return GestureDetector(
            onTap: () {
              if (controller.isOpen) {
                controller.close();
              } else {
                controller.open();
              }
            },
            child: child,
          );
        },
        child: Container(
          height: 50,
          decoration: BoxDecoration(color: Colors.red.withOpacity(0.5), border: Border.all()),
          alignment: Alignment.centerLeft,
          padding: const EdgeInsets.symmetric(horizontal: 10),
          child: const Text('Open'),
        ),
      );
    });
  }
}

TecHaxter pushed a commit to TecHaxter/flutter_packages that referenced this pull request May 22, 2024
Roll Flutter from a418568 to e868e2b (34 revisions)

flutter/flutter@a418568...e868e2b

2024-04-03 [email protected] Add SegmentedButton expand feature (flutter/flutter#142804)
2024-04-03 [email protected] Roll Flutter Engine from e36b9b10c36f to 56fa2c33a5f7 (1 revision) (flutter/flutter#146205)
2024-04-03 [email protected] Roll Packages from 83f3842 to 0e848fa (3 revisions) (flutter/flutter#146201)
2024-04-03 [email protected] Enhance ColorScheme.fromSeed with a new `variant` parameter (flutter/flutter#144805)
2024-04-03 [email protected] Roll Flutter Engine from 0280de5be276 to e36b9b10c36f (1 revision) (flutter/flutter#146200)
2024-04-03 [email protected] Fix typos in bottom_sheet.dart (flutter/flutter#146188)
2024-04-03 [email protected] Roll Flutter Engine from 979030d81f8d to 0280de5be276 (2 revisions) (flutter/flutter#146199)
2024-04-03 [email protected] Roll Flutter Engine from bef3bbe3f74e to 979030d81f8d (1 revision) (flutter/flutter#146186)
2024-04-03 [email protected] Roll Flutter Engine from 5fc83bc24b2e to bef3bbe3f74e (1 revision) (flutter/flutter#146183)
2024-04-03 [email protected] Roll Flutter Engine from 0da1b2eb370a to 5fc83bc24b2e (1 revision) (flutter/flutter#146180)
2024-04-03 [email protected] Avoid calling `TextPainter.plainText` for simple static text (flutter/flutter#146084)
2024-04-03 [email protected] Roll Flutter Engine from e603f89844a9 to 0da1b2eb370a (2 revisions) (flutter/flutter#146179)
2024-04-03 [email protected] Roll Flutter Engine from ef60a95d78c1 to e603f89844a9 (3 revisions) (flutter/flutter#146177)
2024-04-03 [email protected] Fix chip baseline implementation (flutter/flutter#146162)
2024-04-03 [email protected] Roll Flutter Engine from bb4ec2d7eb39 to ef60a95d78c1 (1 revision) (flutter/flutter#146176)
2024-04-03 [email protected] Add tests for material_state_mouse_cursor.0.dart API example. (flutter/flutter#145987)
2024-04-03 [email protected] Update material_color_utilities package version to latest 0.11.1 (flutter/flutter#145959)
2024-04-03 [email protected] Roll Flutter Engine from 5f6dec8bd877 to bb4ec2d7eb39 (4 revisions) (flutter/flutter#146169)
2024-04-03 [email protected] Roll Flutter Engine from 5dbcfdc2a456 to 5f6dec8bd877 (1 revision) (flutter/flutter#146163)
2024-04-02 [email protected] Dispose FocusNode in tests. (flutter/flutter#146161)
2024-04-02 [email protected] Add `none` language strings to code blocks. (flutter/flutter#146154)
2024-04-02 [email protected] Refactor docs (flutter/flutter#145998)
2024-04-02 [email protected] Roll Flutter Engine from c60b00a20fc3 to 5dbcfdc2a456 (3 revisions) (flutter/flutter#146159)
2024-04-02 [email protected] Marks Linux_pixel_7pro complex_layout_scroll_perf_impeller__timeline_summary to be unflaky (flutter/flutter#140038)
2024-04-02 [email protected] Roll Flutter Engine from 5bf8b94505a4 to c60b00a20fc3 (2 revisions) (flutter/flutter#146157)
2024-04-02 [email protected] Refactor analyze (flutter/flutter#146138)
2024-04-02 [email protected] Implement SelectionArea triple click gestures (flutter/flutter#144563)
2024-04-02 [email protected] Roll Flutter Engine from 6883f7313da0 to 5bf8b94505a4 (2 revisions) (flutter/flutter#146152)
2024-04-02 [email protected] Fix border color is wrong for a focused and hovered TextField (flutter/flutter#146127)
2024-04-02 [email protected] Sync lints and enable `annotate_redeclares` (flutter/flutter#146144)
2024-04-02 [email protected] Implements `RenderBox.computeDryBaseline` for material render boxes (flutter/flutter#146027)
2024-04-02 [email protected] Roll Flutter Engine from 523fc953ebc8 to 6883f7313da0 (2 revisions) (flutter/flutter#146140)
2024-04-02 [email protected] Fix `MenuItemButton` overflow (flutter/flutter#143932)
2024-04-02 [email protected] Roll Packages from d5aff19 to 83f3842 (4 revisions) (flutter/flutter#146134)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DropdownMenuEntry Text Overflow when width of DropdownMenu is not specified MenuItemButton does not constrain its child

5 participants