import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:get/get.dart'; import 'package:rogapp/pages/index/index_controller.dart'; class PerfectureWidget extends StatefulWidget { IndexController indexController; MapController mapController; PerfectureWidget({Key? key, required this.indexController, required this.mapController}) : super(key: key){ //indexController.zoomtoMainPerf("9", mapController); } @override State createState() => _PerfectureWidgetState(); } class _PerfectureWidgetState extends State { List> getDropdownItems() { List> dropDownItems = []; for (Map currency in widget.indexController.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.indexController.subPerfs.isNotEmpty){ for (Map currency in widget.indexController.subPerfs[0]) { var newDropdown = DropdownMenuItem( child: Text(currency["adm2_ja"].toString()), value: currency["id"].toString(), ); dropDownItems.add(newDropdown); } } return dropDownItems; } @override Widget build(BuildContext context) { return Obx(() => Row( children: [ DropdownButton( value: widget.indexController.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(() { if(newValue != null){ widget.indexController.dropdownValue = newValue; widget.indexController.populateForPerf(newValue, widget.mapController); } //}); }, items: getDropdownItems() ), widget.indexController.subPerfs.isNotEmpty ? DropdownButton( value: widget.indexController.subDropdownValue, icon: const Icon(Icons.arrow_downward), elevation: 16, style: const TextStyle(color: Colors.deepPurple), hint: const Text("select"), underline: Container( height: 2, color: Colors.deepPurpleAccent, ), onChanged: (String? newValue) { setState(() { if(newValue != null){ widget.indexController.populateForSubPerf(newValue, widget.mapController); //widget.indexController.loadLocationforSubPerf(newValue, widget.mapController); //widget.indexController.subDropdownValue = newValue; } }); }, items: getSubDropdownItems() ) : const Text("") ], ), ); } } // class PerfectureWidget extends StatefulWidget { // HomeController homeController; // MapController mapController; // PerfectureWidget({required this.homeController, required this.mapController}); // @override // State createState() => _PerfectureWidgetState(); // } // class _PerfectureWidgetState extends State { // String dropdownValue = "9"; // 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]) { // var newDropdown = DropdownMenuItem( // child: Text(currency["adm2_ja"].toString()), // value: currency["id"].toString(), // ); // dropDownItems.add(newDropdown); // } // } // return dropDownItems; // } // @override // void initState() { // super.initState(); // widget.homeController.loadSubPerfFor("9"); // widget.homeController.zoomtoMainPerf("9", widget.mapController); // } // @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(() { // if(newValue != null){ // dropdownValue = newValue; // widget.homeController.loadLocationforPerf(newValue, widget.mapController); // widget.homeController.loadSubPerfFor(newValue); // //SubDropdownValue = widget.homeController.getSubInitialVal(); // //widget.mapController.fitBounds(widget.homeController.currentBound[0]); // widget.homeController.zoomtoMainPerf(newValue, widget.mapController); // } // //}); // }, // items: getDropdownItems() // ), // widget.homeController.subPerfs.length > 0 ? // DropdownButton( // value: widget.homeController.SubDropdownValue, // icon: const Icon(Icons.arrow_downward), // elevation: 16, // style: const TextStyle(color: Colors.deepPurple), // hint: Container( // child: Text("select"), // ), // underline: Container( // height: 2, // color: Colors.deepPurpleAccent, // ), // onChanged: (String? newValue) { // //setState(() { // if(newValue != null){ // widget.homeController.loadLocationforSubPerf(newValue, widget.mapController); // widget.homeController.SubDropdownValue = newValue; // widget.homeController.zoomtoSubPerf(newValue, widget.mapController); // } // //}); // }, // items: // getSubDropdownItems() // ) : // Text("") // ], // ), // ); // } // }