繁体   English   中英

Flutter 下拉项目未显示

[英]Flutter dropdown items not showing

我正在显示我的简单下拉菜单,但我的选项没有打开意味着它没有显示下拉菜单。

我有一个像这样的简单列表

[352094083791878, 358480083322091, 358480081409924]

这是我的代码

class _SettingPageState extends State<SettingPage> {
  bool isSwitched = false;

  bool _shoW = true;
  var items = [];
  @override
  void initState() {
    super.initState();

    getImi();
  }

  getImi() async {
    final storage = new FlutterSecureStorage();

    String userNumber = await storage.read(key: "userNumber");
    String userPassword = await storage.read(key: "userPassword");

    print('showimi');
    print(userNumber);
    print(userPassword);

    var map = new Map<String, dynamic>();

    showDialog(
        context: context,
        barrierDismissible: false,
        builder: (BuildContext context) {
          return Center(
              child: SpinKitWave(
                  color: Color(0xff00abb5), type: SpinKitWaveType.center));
        });

    var url =
        'http://api.igiinsurance.com.pk:8888/drive_api/login.php?number=${userNumber}&password=${userPassword}';
    print(url);
    http.Response res = await http.get(
      url,
      headers: <String, String>{'token': 'c66026133e80d4960f0a5b7d418a4d08'},
    );
    var data = json.decode(res.body.toString());
    print(data);

    if (data['status'].toString() == "Success") {
      Navigator.pop(context);
      _shoW = true;

      data['data'].forEach((row) {
        print(row['imei_number']);
        items.add(row['imei_number']);

        print(items);
      });
    } else {
      Navigator.pop(context);
      _shoW = false;
    }
  }

  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    double height = MediaQuery.of(context).size.height;
    return Scaffold(
      body: DecoratedBox(
        decoration: BoxDecoration(
          image: DecorationImage(
              image: AssetImage("images/sidebg.png"), fit: BoxFit.cover),
        ),
        child: Column(
          children: [
            _shoW
                ? DropdownButton(
                    hint: Text('Select Vechile'),
                    items: items.map((val) {
                      return DropdownMenuItem<String>(
                        value: val,
                        child: new Text(val),
                      );
                    }).toList(),
                    onChanged: null)
                : Container()
          ],
        ),
      ),
    );
  }
}

我只是在 Items 数组中添加值。 我需要在 select 下列表中显示该数组。 但这并没有打开我尝试放入 static 列表的选项,但这也不起作用。

您需要将onChanged设置为非null值。 没有监听器的onChanged不能让你打开列表。

如果您需要显示当前选定的值,请将value参数传递给DropdownButton 您还可以在官方 Flutter 文档中找到更多示例。

像这样更改您的代码:

if (data['status'].toString() == "Success") {
          Navigator.pop(context);
    
    setState(){
          _shoW = true;
    }
    
    
          data['data'].forEach((row) {
            print(row['imei_number']);
            items.add(row['imei_number']);
    
            print(items);
          });
        } else {
          Navigator.pop(context);
    setState(){
          _shoW = false;
    }
    
         
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM