应该只有[DropdownButton]值的一项:

时间:2020-11-10 00:27:37

标签: flutter

String selectedItem = 'Instalação Fibra';

DropdownButton<String>(
                value: selectedItem,
                onChanged: (value) {
                  setState(() {
                    selectedItem = value;
                  });
                },
                items: <String>['Instalação de TV', 'Instalação Rádio']
                    .map<DropdownMenuItem<String>>((String e) {
                  return DropdownMenuItem<String>(
                    value: e,
                    child: Text(e),
                  );
                }).toList(),
              )

这怎么可能是错误的? 这没有编译。我尝试了几种方法,但是所有方法都出错了。

1 个答案:

答案 0 :(得分:0)

您可以在下面复制粘贴运行完整代码
selectedItem中不存在'Instalação Fibra' <String>['Instalação de TV', 'Instalação Rádio']
您可以使用List<String> items并设置selectedItem = items[0]
代码段

List<String> items = ['Instalação Fibra','Instalação de TV', 'Instalação Rádio'];
String selectedItem;

@override
void initState() {
    selectedItem = items[0];
    super.initState();
}

工作演示

enter image description here

完整代码

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<String> items = ['Instalação Fibra','Instalação de TV', 'Instalação Rádio'];
  String selectedItem;

  @override
  void initState() {
    selectedItem = items[0];
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: DropdownButton<String>(
        value: selectedItem,
        onChanged: (value) {
          setState(() {
            selectedItem = value;
          });
        },
        items: items.map<DropdownMenuItem<String>>((String e) {
          return DropdownMenuItem<String>(
            value: e,
            child: Text(e),
          );
        }).toList(),
      ),
    );
  }
}