如何解决DropDownButton 不显示我选择的选项
我正在使用 Flutter 并计划制作一个下拉按钮供用户选择。选择其中一个选项后,它仍会显示提示,而不是用户选择的选项。
这是代码:
DropdownButton<String>(
isExpanded: true,items: <String>['student','driver'].map((String value) {
return DropdownMenuItem<String>(
value: value,child: new Text(value),);
}).toList(),hint: new Text ("Select a Role"),onChanged: (value) => _role = value,),
预先感谢您的帮助。
解决方法
您需要在 setState
中调用 onChanged
。您必须将 _role
分配给 value
的 DropdownButton
属性。
这是我创建的 DartPad。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: MyWidget(),),);
}
}
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
String? _role = 'student';
@override
Widget build(BuildContext context) {
return DropdownButton<String>(
isExpanded: true,items: <String>['student','driver'].map((String value) {
return DropdownMenuItem<String>(
value: value,child: new Text(value),);
}).toList(),value: _role,hint: new Text("Select a Role"),onChanged: (value) => setState(() => _role = value),);
}
}
,
你应该喜欢这个
DropdownButton<String>(
isExpanded: true,'driver'].map((String value) {
return DropdownMenuItem<String>(
value: value,);
}).toList(),value:_role,hint: new Text ("Select a Role"),onChanged: (value) => setState((){
_role = value
}),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。