【问题标题】:hint not working for DropdownButtonFormField in Flutter提示不适用于 Flutter 中的 DropdownButtonFormField
【发布时间】:2019-08-09 13:02:46
【问题描述】:

我在 Flutter 中有一个带有 textformfield 和 dropdownbuttonformfield 的表单。运行我的应用程序提示时对我不起作用。 提示 未显示在下拉按钮表单字段中。它显示 kkk 作为初始值而不显示 Select City。

我在这里使用 StatefulWidget。

帮我解决这个问题。 提前致谢。

class _AddTripState extends State<AddTrip> {
  var formKey = GlobalKey<FormState>();
  TextEditingController nameController = TextEditingController();  
  TextEditingController numberController = TextEditingController();
  TextEditingController datecontroller = TextEditingController();
  final format = DateFormat("yyyy-MM-dd");
  DateTime _dateTime;
  List<String> name = ['kkk', 'rrr'];
  String _dropdownvalue = 'kkk';

@override
Widget build(BuildContext context) {
  return Scaffold(
  appBar: AppBar(
    title: Text("Add Trip"),
  ),
  body: Form(
      key: formKey,
      child: ListView(
        children: <Widget>[
          Text(
            'Name',
            textAlign: TextAlign.left,
          ),
          TextFormField(
            decoration: _inputDecoration(),
            keyboardType: TextInputType.text,
            controller: nameController,
            validator: textValidator,
          ),
          Text(
            'Number',
            textAlign: TextAlign.left,
          ),
          TextFormField(
            decoration: _inputDecoration(),
            controller: numberController,
            keyboardType: TextInputType.number,
            validator: numberValidator,
          ),
          Text(
            'Date',
            textAlign: TextAlign.left,
          ),
          TextFormField(
            readOnly: true,
            controller: datecontroller,
            validator: dateValidator,
            decoration: InputDecoration(
              border: OutlineInputBorder(),
              errorBorder: OutlineInputBorder(
                  borderSide: BorderSide(color: Colors.amber)),
              errorStyle: TextStyle(color: Colors.amber),
              suffixIcon: GestureDetector(
                child: Icon(
                  Icons.date_range,
                ),
                onTap: () {
                  showDatePicker(
                          context: context,
                          initialDate: DateTime.now(),
                          firstDate: DateTime(2018),
                          lastDate: DateTime(2020))
                      .then((value) {
                    setState(() {
                      datecontroller.text =
                          DateFormat("yyyy-MM-dd").format(value);
                    });
                  });
                },
              ),
            ),
          ),
          DropdownButtonFormField<String>(
            hint: Text('Select City'),
            validator: _cityValidator,
            decoration: InputDecoration(border: OutlineInputBorder()),
            items: name.map((value) {
              return DropdownMenuItem<String>(
                  child: Text(value), value: value);
            }).toList(),
            value: _dropdownvalue,
            onChanged: (newValue) {
              setState(() {
                _dropdownvalue = newValue;
              });
            },
          ),
          RaisedButton(
            onPressed: submit,
            child: Text('Add Trip'),
          )
        ],
      )),
);
}

我哪里错了?

【问题讨论】:

    标签: flutter drop-down-menu dart dropdown


    【解决方案1】:

    如果value 为空,则显示提示。

    所以在您的代码中 - 将 - String _dropdownvalue = 'kkk'; 更改为 - String _dropdownvalue; only

    【讨论】:

      【解决方案2】:

      您需要为此目的使用 InputDecoration:

       decoration: InputDecoration(labelText:'Select City'),
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-06
        • 2021-03-24
        • 2022-08-17
        • 1970-01-01
        • 1970-01-01
        • 2022-12-23
        • 2020-08-13
        • 2020-08-11
        相关资源
        最近更新 更多