微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DropDownButton 不显示我选择的选项

如何解决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 分配给 valueDropdownButton 属性。

这是我创建的 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 举报,一经查实,本站将立刻删除。