Flutter 禁用DropdownButton会导致布局错误

Flutter 禁用DropdownButton会导致布局错误,flutter,flutter-layout,Flutter,Flutter Layout,我在尝试暂时禁用应用程序中的下拉按钮时发现问题。当我直接将onChange参数设置为null时,flatter框架会抛出一个错误,因为其中一个小部件试图在屏幕上占据无限的宽度。 另一方面,将任何函数设置为onChange不会引起任何问题。文件还说: 如果items或onChanged为空,则按钮将被禁用,向下箭头将变灰,并显示disabledHint(如果提供) 是我做错了什么,还是像这样的错误根本不应该发生 import 'package:flutter/material.dart'; vo

我在尝试暂时禁用应用程序中的
下拉按钮时发现问题。当我直接将
onChange
参数设置为null时,flatter框架会抛出一个错误,因为其中一个小部件试图在屏幕上占据无限的宽度。 另一方面,将任何函数设置为
onChange
不会引起任何问题。文件还说:

如果
items
onChanged
为空,则按钮将被禁用,向下箭头将变灰,并显示
disabledHint
(如果提供)

是我做错了什么,还是像这样的错误根本不应该发生

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        appBar: AppBar(),
        body: Center(
          child: DropdownButton<int>(
            // onChanged: (_) {}, // OK
            onChanged: null, // won't work
            items: List.generate(
              10,
              (it) => DropdownMenuItem(child: Text('$it')),
            ),
          ),
        ),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
家:脚手架(
appBar:appBar(),
正文:中(
孩子:下拉按钮(
//onChanged:({},//确定
onChanged:null,//不起作用
项目:List.generate(
10,
(it)=>DropdownMenuItem(子项:文本(“$it”),
),
),
),
),
);
}
}
I/颤振(26081):══╡ 呈现库捕获到异常╞═════════════════════════════════════════════════════════
I/flatter(26081):在performLayout()期间抛出了以下断言:
I/颤振(26081):在布局过程中,RenderIndexedStack对象被赋予了无限大。
I/flatter(26081):这可能意味着它是一个试图尽可能大的渲染对象,但它被放置了
I/flatter(26081):在另一个渲染对象内,允许其子对象选择自己的大小。
I/颤振(26081):提供无界宽度约束的最近祖先是:
I/颤振(26081):RenderFlex#da5c9 relayoutBoundary=up7需要-布局需要-油漆
I/flatter(26081):创建者:行← 衬垫← 容器← DefaultTextStyle← 堆栈← 听众← _手势语义学←
I/颤振(26081):RawGestureDetector← 手势检测器← 语义学← 下拉按钮← 居中← ⋯
I/颤振(26081):父数据:偏移=偏移(0.0,0.0)(可以使用大小)

I/颤振(26081):约束:BoxConstraints(0.0这是大约一个月前修复的

您可能正在使用flatter
stable
1.0.0,其中尚未包含修复

在下一个稳定版本发布之前,您可以通过切换到
dev
频道来获得修复

flutter channel dev
flutter doctor 
flutter channel dev
flutter doctor