首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter - DropdownButton onChanged不调用函数

Flutter中的DropdownButton是一个下拉菜单按钮,可以让用户从预定义的选项中选择一个值。onChanged是DropdownButton的一个回调函数,当用户选择一个新的值时,该函数会被调用。

然而,有时候在使用DropdownButton时,发现onChanged函数没有被调用的情况。这可能是由于以下几个原因导致的:

  1. DropdownButton的value属性没有正确设置:DropdownButton的value属性用于指定当前选中的值,如果value没有正确设置为一个非空值,那么当用户选择一个新的值时,onChanged函数不会被调用。确保将value设置为一个非空值,例如一个初始值或者从其他地方获取的值。
  2. DropdownMenuItem的value属性没有正确设置:DropdownMenuItem是DropdownButton的子组件,用于定义每个选项的值。如果DropdownMenuItem的value属性没有正确设置,那么当用户选择一个选项时,onChanged函数不会被调用。确保每个DropdownMenuItem的value属性都设置为一个唯一的值。
  3. DropdownButton的items属性为空:DropdownButton的items属性用于定义下拉菜单中的选项列表。如果items属性为空,那么当用户选择一个选项时,onChanged函数不会被调用。确保将items属性设置为一个非空的选项列表。

如果以上原因都不是问题所在,那么可能是由于其他代码逻辑或者外部因素导致的。在这种情况下,建议检查代码中的其他部分,确保没有其他地方对DropdownButton的onChanged函数进行了修改或者屏蔽。

腾讯云相关产品中,与Flutter开发相关的产品是腾讯云移动开发套件(Mobile Development Kit,MDK)。MDK是一款低代码开发平台,支持Flutter等多种前端技术,提供了丰富的组件和模板,帮助开发者快速构建移动应用。您可以通过以下链接了解更多关于腾讯云MDK的信息:腾讯云MDK产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 专题】74 图解基本 DropdownButton 下拉选项框按钮

和尚对于 Flutter 并不系统,总是遇到问题才会准备尝试,今天和尚准备学习一下下拉选择框;Android 提供了便利的 Spinner 而 Flutter 对应的是 DropdownButton...回调是必须参数,且在不同状态下,展示的效果不同;其中 items 或 onChanged 为 null 时为禁用状态,和尚接下来逐一分析各属性; 案例分析 items 为下拉选项列表,onChanged...(items: null, onChanged: null); DropdownButton(items: [ DropdownMenuItem(child: Text('北京')), DropdownMenuItem...isExpanded 用于是否填充按钮宽度到父控件,true 为填充,false 为默认填充; // 源码 if (widget.isExpanded) Expanded(child: innerItemsWidget...对于 DropdownButton 选中回调,其中 items 中 value 是必须参数,且不相同;回调返回的内容是 DropdownMenuItem 中 child 内容; DropdownButton

7.6K31

Flutter 专题】104 图解自定义 ACEDropdownButton 下拉框

和尚之前尝试过 Flutter 自带的 DropdownButton 下拉框,简单方便;但仅单纯的原生效果不足以满足各类个性化设计;于是和尚以 DropdownButton 为基础,调整部分源码...DropdownButton 源码 DropdownButton 源码整合在一个文件中,文件中有很多私有类,不会影响其它组件; 以和尚的理解,整个下拉框包括三个核心组件,分别是 DropdownButton...: Colors.green.withOpacity(0.8), menuRadius: const BorderRadius.all(Radius.circular(15.0)), onChanged...和尚想实现在下拉框展示时,突显出选中状态 item,于是在对应 item 位置添加一个 iconChecked 图标,其中 isChecked 为 true 时,会展示选中图标,否则正常展示...避免遮挡 和尚选择自定义 ACEDropdownButton 下拉框最重要的原因是,Flutter 自带的 DropdownButton 在下拉框展示时会默认遮挡按钮,和尚预期的效果是: 若按钮下部分屏幕空间足够展示所有下拉

1.9K20

Flutter 面试】main入口函数会被调用几次

这个问题涉及引擎的相关知识,如果不了解相关知识,很难回答正确,因为不管说调用几次都是错误的,下面来看一下引擎的相关知识。...创建一个 Flutter 项目,然后运行,main入口函数 只会执行一次,下面修改项目的 MainActivity , class MainActivity : Activity() { override...在 flutter 的 main 入口函数处添加日志: void main() { runApp(MyApp()); print('===main===='); } 运行,点击跳转,跳转到了Flutter...运行,发现还没有点击跳转,就执行了1次main 入口函数,点击跳转,然后这次不在执行 main 入口函数。...此时执行的是 main1 入口函数。 总结 通过上面的实验,总结如下: 入口函数 执行的次数取决于 引擎的启动次数,每启动一次引擎,执行一次入口函数

1K40

flutter给图片加个好看的遮罩层【flutter20个实例之六】

其次顶部有个日期的选择,点击后底部弹出下拉选择,可以选择不同年份 年份选择后,进行内容刷新,数据重新加载 每个图片底部有个一定高度的遮罩层,用来放一些文字 2.看看这个布局的主内容 body里面的列表内容 右上角点击后调用了...65%=59 70%=4c 75%=3F 80%=33 85%=21 90%=19 95%=0c 100%=00(全透明) 三、源码(可直接运行调试) import 'package:flutter.../cupertino.dart'; import 'package:flutter/material.dart'; class Mytest extends StatefulWidget { @override...); } Widget selectYear(context1, state) { return DropdownButtonHideUnderline( child: DropdownButton...value: '2021'), DropdownMenuItem(child: Text('2022年'), value: '2022'), ], onChanged

4.1K30

Flutter 流体滑块

属性 onChanged: 此属性是必需的,并且在用户开始为滑块选择新值时调用该属性。传递的值将是滑块开始更改之前的最后一个[value]。 value: 此属性是必需的,并且用于此滑块的当前选定值。...**onChangeStart:** 当用户开始为滑块选择新值时,将调用此属性。 onChangeEnd: 当 用户为滑块选择新值时,将调用此属性。...flutter_spinwheel:^ 0.1.0 导入 import 'package:flutter_spinwheel/flutter_spinwheel.dart'; 执行 flutter...当用户开始为滑块选择新值时,我们将添加onChanged方式调用。在内部,我们将添加**setState()。**在setState中,我们将添加一个等于新值的变量。...在此滑块中,我们将在value方法中添加一个变量,滑块颜色,onChanged,mapValueToString表示将双精度值映射到String文本的回调函数

11.6K20

Flutter跨平台移动端开发丨Widget、Element、State、状态管理

目录 Widget Element State 状态管理 ---- Widget 的概念 widget 的主要工作是通过实现 build 函数 来构建自身。...一个 widget 通常由一些低级别的 widget 组成,flutter 框架依次的构建这些低级别的 widget,直到构建到最底层的子 widget 时,它会计算并描述 widget 的几何形状 flutter...State 的生命周期 initState:当前 widget 对象插入 widget树中时调用 didChangeDependencies:当前 State 对象的依赖项发生变化时调用 build:绘制当前界面布局时调用...reassemble:使用热重载时调用 didUpdateWidget:widget 配置内容有变动重构时调用 deactivate:当前 widget 对象从 widget 树中移出时调用 dispose...onChanged(!

1.7K50

Flutter Slider 挂件:配合案例理解

:这是个回调函数,当在 slider 轨道上往左或往右拖动滑块,将会调用函数并返回当前 slider 的位置值 在 onChanged 内部,我们通过 setState 来更新 _value 变量:...在 Range Slider 中,回调函数 onChanged 也会返回 RangeValues,方便我们用来更新两滑块的位置: setState(() { _startValue = values.start...三种 slider 都有一些对应的回调函数帮我们实现。如下: onChanged:当用户拖动滑块,就会调用,并更新其值 onChangeStart:当用户开始拖拽时回调。...这个回调用来表明用户已经停止拖动,可以被用来更新任何相关的 UI 上面列出的三个回调,只有 onChanged 应该被用来更新 slider 值。...,并且通过 setState 调用来更新 Text 挂件。

28710

Flutter】自定义滚动开关

本文中,我们将探讨Flutter中 的**Custom Rolling Switch in Flutter。...为了保持状态,它将调用onChanged属性。假设此属性的价值回报为true,则此开关为ON,为OFF则为false。当此属性无效时,开关小部件会失效。...LiteRollingSwitch有一些属性是: **onChanged:**当用户打开或关闭开关时,将调用此属性。 **value:此属性用于确定此开关是打开还是关闭。...iconOff: Icons.power_settings_new, animationDuration: Duration(milliseconds: 800), onChanged...我们将添加animationDuration手段来延迟动画的开始并添加onChanged表示用户打开或关闭开关的时间。当我们运行应用程序时,我们应该获得屏幕的输出,如屏幕下方的截图所示。

33.3K60

-StatefulWidget的打开方式

0.前言 刚接触Flutter的小伙伴在StatefulWidget控件时会感觉难以接受 本人一开始也是,不过对React的了解让我很快理解了Flutter的状态观念 本篇就说一下我对StatefulWidget...var slider = Slider( value: 0, max: 100, min: 0, onChanged: (e) { print('onChanged:$e');...那就需要一个StatefulWidget,如下:有一个私有的变量_value, 在Slider拖动的过程中执行_render方法进行渲染,在渲染时先将Slider的值给_value 在setState方法调用之后...---- 5:组件间的组合 看一下Flutter中组合Slider和Text是多么简洁,只要添加一些就行了 如果Android自定义这样的控件,需要自定义ViewGroup,将两个组件拼合 所以Flutter...更不用说Flutter强大的跨平台能力,它已成为一颗新星,正冉冉升起。 你还在等什么,见证一下Flutter的魅力吧,相信你会喜欢上它的。

1.1K10
领券