import 'package:flutter/material.dart'; import 'package:geojson/geojson.dart'; import 'package:get/get.dart'; import 'package:rogapp/pages/home/home_controller.dart'; class PerfectureWidget extends StatefulWidget { HomeController homeController; PerfectureWidget({required this.homeController}); @override State createState() => _PerfectureWidgetState(); } class _PerfectureWidgetState extends State { String dropdownValue = "1"; List> getDropdownItems() { List> dropDownItems = []; for (Map currency in widget.homeController.perfectures[0]) { //print(currency["id"].toString()); var newDropdown = DropdownMenuItem( child: Text(currency["adm1_ja"].toString()), value: currency["id"].toString(), ); dropDownItems.add(newDropdown); } return dropDownItems; } List> getSubDropdownItems() { List> dropDownItems = []; if(widget.homeController.subPerfs.length > 0){ for (Map currency in widget.homeController.subPerfs[0]) { //print(currency["id"].toString()); var newDropdown = DropdownMenuItem( child: Text(currency["adm2_l"].toString()), value: currency["id"].toString(), ); dropDownItems.add(newDropdown); } } return dropDownItems; } @override Widget build(BuildContext context) { return Obx(() => Row( children: [ DropdownButton( value: dropdownValue, icon: const Icon(Icons.arrow_downward), elevation: 16, style: const TextStyle(color: Colors.deepPurple), underline: Container( height: 2, color: Colors.deepPurpleAccent, ), onChanged: (String? newValue) { setState(() { dropdownValue = newValue!; print(newValue); widget.homeController.loadLocationforPerf(newValue); widget.homeController.loadSubPerfFor(newValue); }); }, items:getDropdownItems()), widget.homeController.subPerfs.length > 0 ? DropdownButton( value: widget.homeController.getSubInitialVal(), icon: const Icon(Icons.arrow_downward), elevation: 16, style: const TextStyle(color: Colors.deepPurple), underline: Container( height: 2, color: Colors.deepPurpleAccent, ), onChanged: (String? newValue) { setState(() { dropdownValue = newValue!; print(newValue); //widget.homeController.loadLocationforPerf(newValue); }); }, items:getSubDropdownItems()) : Text("--") ], ) ); } }