Skip to content

Commit 22f06d2

Browse files
committed
multi-level dropdown component added
1 parent 45bae82 commit 22f06d2

File tree

4 files changed

+530
-1471
lines changed

4 files changed

+530
-1471
lines changed

example/lib/main.dart

Lines changed: 1 addition & 296 deletions
Original file line numberDiff line numberDiff line change
@@ -10,305 +10,10 @@ class MyApp extends StatelessWidget {
1010
Widget build(BuildContext context) => MaterialApp(
1111
title: 'GetWidget',
1212
debugShowCheckedModeBanner: false,
13-
home: Textf(),
13+
home: MyHomePage(),
1414
);
1515
}
1616

17-
class Textf extends StatefulWidget {
18-
@override
19-
_TextfState createState() => _TextfState();
20-
}
21-
22-
class _TextfState extends State<Textf> {
23-
int _value = 1;
24-
@override
25-
Widget build(BuildContext context) {
26-
return Scaffold(
27-
body: Row(children: [
28-
Expanded(
29-
child: Container(
30-
margin: EdgeInsets.only(top: 70, left: 30, right: 30),
31-
child: new MultiSelect(
32-
autovalidate: true,
33-
initialValue: ['IN', 'US'],
34-
titleText: 'Country of Residence',
35-
maxLength: 5, // optional
36-
validator: (dynamic value) {
37-
if (value == null) {
38-
return 'Please select one or more option(s)';
39-
}
40-
return null;
41-
},
42-
errorText: 'Please select one or more option(s)',
43-
dataSource: [
44-
{"name": "Afghanistan", "code": "AF"},
45-
{"name": "Åland Islands", "code": "AX"},
46-
{"name": "Albania", "code": "AL"},
47-
{"name": "Algeria", "code": "DZ"},
48-
{"name": "American Samoa", "code": "AS"},
49-
{"name": "AndorrA", "code": "AD"},
50-
{"name": "Angola", "code": "AO"},
51-
{"name": "Anguilla", "code": "AI"},
52-
{"name": "Antarctica", "code": "AQ"},
53-
{"name": "Antigua and Barbuda", "code": "AG"},
54-
{"name": "Argentina", "code": "AR"},
55-
{"name": "Armenia", "code": "AM"},
56-
{"name": "Aruba", "code": "AW"},
57-
{"name": "Australia", "code": "AU"},
58-
{"name": "Austria", "code": "AT"},
59-
{"name": "Azerbaijan", "code": "AZ"},
60-
{"name": "Bahamas", "code": "BS"},
61-
{"name": "Bahrain", "code": "BH"},
62-
{"name": "Bangladesh", "code": "BD"},
63-
{"name": "Barbados", "code": "BB"},
64-
{"name": "Belarus", "code": "BY"},
65-
{"name": "Belgium", "code": "BE"},
66-
{"name": "Belize", "code": "BZ"},
67-
{"name": "Benin", "code": "BJ"},
68-
{"name": "Bermuda", "code": "BM"},
69-
{"name": "Bhutan", "code": "BT"},
70-
{"name": "Bolivia", "code": "BO"},
71-
{"name": "Bosnia and Herzegovina", "code": "BA"},
72-
{"name": "Botswana", "code": "BW"},
73-
{"name": "Bouvet Island", "code": "BV"},
74-
{"name": "Brazil", "code": "BR"},
75-
{"name": "British Indian Ocean Territory", "code": "IO"},
76-
{"name": "Brunei Darussalam", "code": "BN"},
77-
{"name": "Bulgaria", "code": "BG"},
78-
{"name": "Burkina Faso", "code": "BF"},
79-
{"name": "Burundi", "code": "BI"},
80-
{"name": "Cambodia", "code": "KH"},
81-
{"name": "Cameroon", "code": "CM"},
82-
{"name": "Canada", "code": "CA"},
83-
{"name": "Cape Verde", "code": "CV"},
84-
{"name": "Cayman Islands", "code": "KY"},
85-
{"name": "Central African Republic", "code": "CF"},
86-
{"name": "Chad", "code": "TD"},
87-
{"name": "Chile", "code": "CL"},
88-
{"name": "China", "code": "CN"},
89-
{"name": "Christmas Island", "code": "CX"},
90-
{"name": "Cocos (Keeling) Islands", "code": "CC"},
91-
{"name": "Colombia", "code": "CO"},
92-
{"name": "Comoros", "code": "KM"},
93-
{"name": "Congo", "code": "CG"},
94-
{"name": "Congo, The Democratic Republic of the", "code": "CD"},
95-
{"name": "Cook Islands", "code": "CK"},
96-
{"name": "Costa Rica", "code": "CR"},
97-
{"name": "Cote D\'Ivoire", "code": "CI"},
98-
{"name": "Croatia", "code": "HR"},
99-
{"name": "Cuba", "code": "CU"},
100-
{"name": "Cyprus", "code": "CY"},
101-
{"name": "Czech Republic", "code": "CZ"},
102-
{"name": "Denmark", "code": "DK"},
103-
{"name": "Djibouti", "code": "DJ"},
104-
{"name": "Dominica", "code": "DM"},
105-
{"name": "Dominican Republic", "code": "DO"},
106-
{"name": "Ecuador", "code": "EC"},
107-
{"name": "Egypt", "code": "EG"},
108-
{"name": "El Salvador", "code": "SV"},
109-
{"name": "Equatorial Guinea", "code": "GQ"},
110-
{"name": "Eritrea", "code": "ER"},
111-
{"name": "Estonia", "code": "EE"},
112-
{"name": "Ethiopia", "code": "ET"},
113-
{"name": "Falkland Islands (Malvinas)", "code": "FK"},
114-
{"name": "Faroe Islands", "code": "FO"},
115-
{"name": "Fiji", "code": "FJ"},
116-
{"name": "Finland", "code": "FI"},
117-
{"name": "France", "code": "FR"},
118-
{"name": "French Guiana", "code": "GF"},
119-
{"name": "French Polynesia", "code": "PF"},
120-
{"name": "French Southern Territories", "code": "TF"},
121-
{"name": "Gabon", "code": "GA"},
122-
{"name": "Gambia", "code": "GM"},
123-
{"name": "Georgia", "code": "GE"},
124-
{"name": "Germany", "code": "DE"},
125-
{"name": "Ghana", "code": "GH"},
126-
{"name": "Gibraltar", "code": "GI"},
127-
{"name": "Greece", "code": "GR"},
128-
{"name": "Greenland", "code": "GL"},
129-
{"name": "Grenada", "code": "GD"},
130-
{"name": "Guadeloupe", "code": "GP"},
131-
{"name": "Guam", "code": "GU"},
132-
{"name": "Guatemala", "code": "GT"},
133-
{"name": "Guernsey", "code": "GG"},
134-
{"name": "Guinea", "code": "GN"},
135-
{"name": "Guinea-Bissau", "code": "GW"},
136-
{"name": "Guyana", "code": "GY"},
137-
{"name": "Haiti", "code": "HT"},
138-
{"name": "Heard Island and Mcdonald Islands", "code": "HM"},
139-
{"name": "Holy See (Vatican City State)", "code": "VA"},
140-
{"name": "Honduras", "code": "HN"},
141-
{"name": "Hong Kong", "code": "HK"},
142-
{"name": "Hungary", "code": "HU"},
143-
{"name": "Iceland", "code": "IS"},
144-
{"name": "India", "code": "IN"},
145-
{"name": "Indonesia", "code": "ID"},
146-
{"name": "Iran, Islamic Republic Of", "code": "IR"},
147-
{"name": "Iraq", "code": "IQ"},
148-
{"name": "Ireland", "code": "IE"},
149-
{"name": "Isle of Man", "code": "IM"},
150-
{"name": "Israel", "code": "IL"},
151-
{"name": "Italy", "code": "IT"},
152-
{"name": "Jamaica", "code": "JM"},
153-
{"name": "Japan", "code": "JP"},
154-
{"name": "Jersey", "code": "JE"},
155-
{"name": "Jordan", "code": "JO"},
156-
{"name": "Kazakhstan", "code": "KZ"},
157-
{"name": "Kenya", "code": "KE"},
158-
{"name": "Kiribati", "code": "KI"},
159-
{"name": "Korea, Democratic People\'s Republic of", "code": "KP"},
160-
{"name": "Korea, Republic of", "code": "KR"},
161-
{"name": "Kuwait", "code": "KW"},
162-
{"name": "Kyrgyzstan", "code": "KG"},
163-
{"name": "Lao People\'s Democratic Republic", "code": "LA"},
164-
{"name": "Latvia", "code": "LV"},
165-
{"name": "Lebanon", "code": "LB"},
166-
{"name": "Lesotho", "code": "LS"},
167-
{"name": "Liberia", "code": "LR"},
168-
{"name": "Libyan Arab Jamahiriya", "code": "LY"},
169-
{"name": "Liechtenstein", "code": "LI"},
170-
{"name": "Lithuania", "code": "LT"},
171-
{"name": "Luxembourg", "code": "LU"},
172-
{"name": "Macao", "code": "MO"},
173-
{
174-
"name": "Macedonia, The Former Yugoslav Republic of",
175-
"code": "MK"
176-
},
177-
{"name": "Madagascar", "code": "MG"},
178-
{"name": "Malawi", "code": "MW"},
179-
{"name": "Malaysia", "code": "MY"},
180-
{"name": "Maldives", "code": "MV"},
181-
{"name": "Mali", "code": "ML"},
182-
{"name": "Malta", "code": "MT"},
183-
{"name": "Marshall Islands", "code": "MH"},
184-
{"name": "Martinique", "code": "MQ"},
185-
{"name": "Mauritania", "code": "MR"},
186-
{"name": "Mauritius", "code": "MU"},
187-
{"name": "Mayotte", "code": "YT"},
188-
{"name": "Mexico", "code": "MX"},
189-
{"name": "Micronesia, Federated States of", "code": "FM"},
190-
{"name": "Moldova, Republic of", "code": "MD"},
191-
{"name": "Monaco", "code": "MC"},
192-
{"name": "Mongolia", "code": "MN"},
193-
{"name": "Montserrat", "code": "MS"},
194-
{"name": "Morocco", "code": "MA"},
195-
{"name": "Mozambique", "code": "MZ"},
196-
{"name": "Myanmar", "code": "MM"},
197-
{"name": "Namibia", "code": "NA"},
198-
{"name": "Nauru", "code": "NR"},
199-
{"name": "Nepal", "code": "NP"},
200-
{"name": "Netherlands", "code": "NL"},
201-
{"name": "Netherlands Antilles", "code": "AN"},
202-
{"name": "New Caledonia", "code": "NC"},
203-
{"name": "New Zealand", "code": "NZ"},
204-
{"name": "Nicaragua", "code": "NI"},
205-
{"name": "Niger", "code": "NE"},
206-
{"name": "Nigeria", "code": "NG"},
207-
{"name": "Niue", "code": "NU"},
208-
{"name": "Norfolk Island", "code": "NF"},
209-
{"name": "Northern Mariana Islands", "code": "MP"},
210-
{"name": "Norway", "code": "NO"},
211-
{"name": "Oman", "code": "OM"},
212-
{"name": "Pakistan", "code": "PK"},
213-
{"name": "Palau", "code": "PW"},
214-
{"name": "Palestinian Territory, Occupied", "code": "PS"},
215-
{"name": "Panama", "code": "PA"},
216-
{"name": "Papua New Guinea", "code": "PG"},
217-
{"name": "Paraguay", "code": "PY"},
218-
{"name": "Peru", "code": "PE"},
219-
{"name": "Philippines", "code": "PH"},
220-
{"name": "Pitcairn", "code": "PN"},
221-
{"name": "Poland", "code": "PL"},
222-
{"name": "Portugal", "code": "PT"},
223-
{"name": "Puerto Rico", "code": "PR"},
224-
{"name": "Qatar", "code": "QA"},
225-
{"name": "Reunion", "code": "RE"},
226-
{"name": "Romania", "code": "RO"},
227-
{"name": "Russian Federation", "code": "RU"},
228-
{"name": "RWANDA", "code": "RW"},
229-
{"name": "Saint Helena", "code": "SH"},
230-
{"name": "Saint Kitts and Nevis", "code": "KN"},
231-
{"name": "Saint Lucia", "code": "LC"},
232-
{"name": "Saint Pierre and Miquelon", "code": "PM"},
233-
{"name": "Saint Vincent and the Grenadines", "code": "VC"},
234-
{"name": "Samoa", "code": "WS"},
235-
{"name": "San Marino", "code": "SM"},
236-
{"name": "Sao Tome and Principe", "code": "ST"},
237-
{"name": "Saudi Arabia", "code": "SA"},
238-
{"name": "Senegal", "code": "SN"},
239-
{"name": "Serbia and Montenegro", "code": "CS"},
240-
{"name": "Seychelles", "code": "SC"},
241-
{"name": "Sierra Leone", "code": "SL"},
242-
{"name": "Singapore", "code": "SG"},
243-
{"name": "Slovakia", "code": "SK"},
244-
{"name": "Slovenia", "code": "SI"},
245-
{"name": "Solomon Islands", "code": "SB"},
246-
{"name": "Somalia", "code": "SO"},
247-
{"name": "South Africa", "code": "ZA"},
248-
{
249-
"name": "South Georgia and the South Sandwich Islands",
250-
"code": "GS"
251-
},
252-
{"name": "Spain", "code": "ES"},
253-
{"name": "Sri Lanka", "code": "LK"},
254-
{"name": "Sudan", "code": "SD"},
255-
{"name": "Suriname", "code": "SR"},
256-
{"name": "Svalbard and Jan Mayen", "code": "SJ"},
257-
{"name": "Swaziland", "code": "SZ"},
258-
{"name": "Sweden", "code": "SE"},
259-
{"name": "Switzerland", "code": "CH"},
260-
{"name": "Syrian Arab Republic", "code": "SY"},
261-
{"name": "Taiwan, Province of China", "code": "TW"},
262-
{"name": "Tajikistan", "code": "TJ"},
263-
{"name": "Tanzania, United Republic of", "code": "TZ"},
264-
{"name": "Thailand", "code": "TH"},
265-
{"name": "Timor-Leste", "code": "TL"},
266-
{"name": "Togo", "code": "TG"},
267-
{"name": "Tokelau", "code": "TK"},
268-
{"name": "Tonga", "code": "TO"},
269-
{"name": "Trinidad and Tobago", "code": "TT"},
270-
{"name": "Tunisia", "code": "TN"},
271-
{"name": "Turkey", "code": "TR"},
272-
{"name": "Turkmenistan", "code": "TM"},
273-
{"name": "Turks and Caicos Islands", "code": "TC"},
274-
{"name": "Tuvalu", "code": "TV"},
275-
{"name": "Uganda", "code": "UG"},
276-
{"name": "Ukraine", "code": "UA"},
277-
{"name": "United Arab Emirates", "code": "AE"},
278-
{"name": "United Kingdom", "code": "GB"},
279-
{"name": "United States", "code": "US"},
280-
{"name": "United States Minor Outlying Islands", "code": "UM"},
281-
{"name": "Uruguay", "code": "UY"},
282-
{"name": "Uzbekistan", "code": "UZ"},
283-
{"name": "Vanuatu", "code": "VU"},
284-
{"name": "Venezuela", "code": "VE"},
285-
{"name": "Viet Nam", "code": "VN"},
286-
{"name": "Virgin Islands, British", "code": "VG"},
287-
{"name": "Virgin Islands, U.S.", "code": "VI"},
288-
{"name": "Wallis and Futuna", "code": "WF"},
289-
{"name": "Western Sahara", "code": "EH"},
290-
{"name": "Yemen", "code": "YE"},
291-
{"name": "Zambia", "code": "ZM"},
292-
{"name": "Zimbabwe", "code": "ZW"}
293-
],
294-
textField: 'name',
295-
valueField: 'code',
296-
filterable: true,
297-
required: true,
298-
onSaved: (value) {
299-
print('The value is $value');
300-
},
301-
selectIcon: Icons.arrow_drop_down_circle,
302-
saveButtonColor: Theme.of(context).primaryColor,
303-
checkBoxColor: Theme.of(context).primaryColorDark,
304-
cancelButtonColor: Theme.of(context).primaryColorLight,
305-
),
306-
),
307-
),
308-
]));
309-
}
310-
}
311-
31217
class MyHomePage extends StatefulWidget {
31318
@override
31419
_MyHomePageState createState() => _MyHomePageState();

0 commit comments

Comments
 (0)