最近在跟着flutter-go項目學習研究, 發現有一位同窗提出了一條建議android
@songshitong 有flutter的城市選擇組件(city picker)嗎 android和iOS風格的? 相似於這個ios
我就在本地簡單的去模擬實現了一下. 發現代碼邏輯部份比較簡單. 因此就簡單的封裝成一個package. 發佈到了Dart Pub上邊, 歡迎你們扔板磚~git
暫時實現了三種github
最初設計的時候. 想着以Widget的方式, 扔給你們使用. 但是試了幾種方式, 使用起來都比較麻煩. 後來借鑑了一下函數式編程的思想, 最終定爲經過靜態函數調用:編程
import 'package:city_pickers/city_pickers.dart';
...
show() async {
Result result = await CityPickers.showCityPicker(
context: context,
);
// type 2
Result result2 = await CityPickers.showFullPageCityPicker(
context: context,
);
}
複製代碼
Name | Type | Desc |
---|---|---|
showCityPicker | Function | 呼出彈出層,顯示多級選擇器 |
showFullPageCityPicker | Function | 呼出一層界面, 顯示多級選擇器 |
showCitiesSelector | Function | 呼出一層, 顯示支持字母定位城市選擇器 |
Name | Type | Default | Desc |
---|---|---|---|
context | BuildContext | null | 上下文對象 |
theme | ThemeData | Theme.of(context) | 主題, 能夠自定義 |
locationCode | String | 110000 | 初始化地址信息, 能夠是省, 市, 區的地區碼 |
height | double | 300 | 彈出層的高度, 太高或者太低會致使容器報錯 |
showType | ShowType | ShowType.pca | 三級聯動, 顯示類型 |
barrierOpacity | double | 0.5 | 彈出層的背景透明度, 應該是大於0, 小於1 |
barrierDismissible | bool | true | 是否能夠經過點擊彈出層背景, 關閉彈出層 |
Name | Type | Default | Desc |
---|---|---|---|
context | BuildContext | null | 上下文對象 |
theme | ThemeData | Theme.of(context) | 主題, 能夠自定義 |
locationCode | String | 110000 | 初始化地址信息, 能夠是省, 市, 區的地區碼 |
showType | ShowType | ShowType.pca | 三級聯動, 顯示類型 |
具體使用方式, 能夠參考本地運行示例git:city_pickersbash
flutter-go:flutter 開發者幫助 APP,包含 flutter 經常使用 140+ 組件的demo 演示與中文文檔async