DropDownButton 不显示我选择的选项
DropDownButton Does not show the option that I chose
我正在使用 Flutter 并计划为用户制作一个下拉按钮 select。在 select 选择其中一个选项后,它仍会显示提示而不是用户选择的选项。
这是代码:
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,
),
提前感谢您的帮助。
您需要在 onChanged
中调用 setState
。您必须将 _role
分配给 DropdownButton
的 value
属性。
这是我创建的 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,
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
}),
),
我正在使用 Flutter 并计划为用户制作一个下拉按钮 select。在 select 选择其中一个选项后,它仍会显示提示而不是用户选择的选项。
这是代码:
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,
),
提前感谢您的帮助。
您需要在 onChanged
中调用 setState
。您必须将 _role
分配给 DropdownButton
的 value
属性。
这是我创建的 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,
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
}),
),