Skip to content

[Regression] Cannot scroll to the bottom of DropdownMenu  #158924

@TahaTesser

Description

@TahaTesser

Steps to reproduce

Create a DropdownMenu with a long list on desktop. This behavior differs on the latest stable and main channels at the time of writing this.

Main channel

main.mp4

Stable channel

stable.mp4

Expected results

Can scroll to the bottom of DropdownMenu

Actual results

Cannot reach the bottom of DropdownMenu

Code sample

Code sample
import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(useMaterial3: true),
      home: const CurveSelectorScreen(),
    );
  }
}

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

  @override
  State<CurveSelectorScreen> createState() => _CurveSelectorScreenState();
}

class _CurveSelectorScreenState extends State<CurveSelectorScreen> {
  Curve selectedCurve = Curves.bounceOut;

  final List<Curve> curves = [
    Curves.bounceOut,
    Curves.bounceIn,
    Curves.bounceInOut,
    Curves.easeIn,
    Curves.easeOut,
    Curves.easeInOut,
    Curves.linear,
    Curves.decelerate,
    Curves.elasticIn,
    Curves.elasticOut,
    Curves.elasticInOut,
    Curves.fastOutSlowIn,
    Curves.slowMiddle,
    Curves.ease,
    Curves.fastLinearToSlowEaseIn,
    Curves.decelerate
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Curve Selectors from ${curves.length}')),
      body: Center(
        child: DropdownMenu<Curve>(
          initialSelection: selectedCurve,
          onSelected: (value) {
            if (value != null) {
              setState(() {
                selectedCurve = value;
              });
            }
          },
          dropdownMenuEntries: curves.asMap().entries.map((entry) {
            final index = entry.key;
            final curve = entry.value;
            return DropdownMenuEntry<Curve>(
              value: curve,
              label: '$index - ${curve.toString()}',
            );
          }).toList(),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
[Paste your logs here]

Flutter Doctor output

Doctor output
[!] Flutter (Channel main, 3.27.0-1.0.pre.494, on macOS 15.1 24B83 darwin-arm64,
    locale en-US)
    • Flutter version 3.27.0-1.0.pre.494 on channel main at
      /Users/tahatesser/Code/flutter
    ! Upstream repository [email protected]:TahaTesser/flutter.git is not the same
      as FLUTTER_GIT_URL
    • FLUTTER_GIT_URL = [email protected]:TahaTesser/flutter.gitexport
    • Framework revision 8f62a9904d (3 hours ago), 2024-11-14 05:39:39 -0500
    • Engine revision 619804c0fb
    • Dart version 3.7.0 (build 3.7.0-140.0.dev)
    • DevTools version 2.41.0-dev.2
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: regressionIt was better in the past than it is nowf: material designflutter/packages/flutter/material repository.found in release: 3.24Found to occur in 3.24found in release: 3.27Found to occur in 3.27frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-designOwned by Design Languages teamtriaged-designTriaged by Design Languages team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions