【问题标题】:DropDown Selection Is Not Displaying In Flutter下拉选项未在 Flutter 中显示
【发布时间】:2023-01-08 01:17:39
【问题描述】:

选择项目后不显示下拉按钮菜单项 当用户需要从可用项目列表中选择单个项目但 flutter 不显示所选项目时,

 

class TaskTitleDiaglogscreen extends StatefulWidget {
  const TaskTitleDiaglogscreen({
    super.key, });

  @override
  State<TaskTitleDiaglogscreen> createState() => _TaskTitleDiaglogscreenState();
}

class _TaskTitleDiaglogscreenState extends State<TaskTitleDiaglogscreen> {
 
  @override
  Widget build(BuildContext context) {
    final taskpriority = [
      'Urgent',
      'High priority',
      'Important',
      'Medium priority',
      'Not important',
      'Low priority',
    ];
    String? selecteditem;

    return AlertDialog(
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
      content: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          InputDecorator(
            decoration: InputDecoration(
              labelText: 'Select Priority',
              labelStyle: TextStyle(fontSize: 20),
              border:
                  OutlineInputBorder(borderRadius: BorderRadius.circular(20.0)),
              contentPadding: EdgeInsets.all(10),
            ),
            child: ButtonTheme(
              materialTapTargetSize: MaterialTapTargetSize.padded,
              child: DropdownButton(
                  value: selecteditem,
                  isExpanded: true,
                  icon: Icon(Icons.keyboard_double_arrow_down_rounded),
                  items: taskpriority.map(buildMenuitem).toList(),
                  onChanged: (value) {
                    setState(() {
                      selecteditem = value;
                    });
                    print(selecteditem);
                  }),
            ),
          )
        ],
      ),
    );
  }

  DropdownMenuItem<String> buildMenuitem(String priority) => DropdownMenuItem(
        value: priority,
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Text(priority),
             CircleAvatar(
              radius: 10,
              backgroundColor: _getColor(priority),
            )
          ],
        ),
      );

  Color _getColor(String value) {
    switch (value) {
      case 'Urgent':
        return Colors.red;
      case 'High priority':
        return Color.fromARGB(255, 243, 144, 144);
      case 'Important':
        return Colors.green;
      case 'Medium priority':
        return Colors.lightGreenAccent;
      case 'Not important':
        return Colors.blue;
      case 'Low priority':
        return Colors.lightBlueAccent;
      default:
        return Colors.black;
    }
  }
} 

当用户需要从当时可用项目的列表中选择单个项目时,使用下拉列表

【问题讨论】:

    标签: flutter dart dropdown flutter-dropdownbutton


    【解决方案1】:

    您需要在构建方法之外定义变量,否则它将重新分配默认值。

    class _TaskTitleDiaglogscreenState extends State<TaskTitleDiaglogscreen> {
      final taskpriority = [
        'Urgent',
        'High priority',
        'Important',
        'Medium priority',
        'Not important',
        'Low priority',
      ];
      String? selecteditem;
      @override
      Widget build(BuildContext context) {
    

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 2018-12-29
      • 1970-01-01
      • 2019-02-08
      • 2021-03-07
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      相关资源
      最近更新 更多