showCityPicker static method

Future<Result?> showCityPicker({
  1. required BuildContext context,
  2. dynamic showType = ShowType.pca,
  3. double height = 400.0,
  4. String locationCode = '110000',
  5. ThemeData? theme,
  6. Map<String, dynamic>? citiesData,
  7. Map<String, String>? provincesData,
  8. bool barrierDismissible = true,
  9. double barrierOpacity = 0.5,
  10. ItemWidgetBuilder? itemBuilder,
  11. double? itemExtent,
  12. Widget? cancelWidget,
  13. Widget? confirmWidget,
  14. double borderRadius = 0,
  15. bool isSort = false,
})

use @param context BuildContext for navigator @param locationCode initial select, one of province area or city id if given id is provinceId, the city and area id will be this province's first city and first area in metadata @param height Container's height

@param Theme used it's primaryColor

@param barrierDismissible whether user can dismiss the modal by touch background

@param cancelWidget customer widget for building cancel button

@param confirmWidget customer widget for building confirm button

@param itemBuilder customer widget for building item

@parma borderRadius Container topleft and topRight radius default 0. @return Result see Result

Implementation

static Future<Result?> showCityPicker(
    {required BuildContext context,
    showType = ShowType.pca,
    double height = 400.0,
    String locationCode = '110000',
    ThemeData? theme,
    Map<String, dynamic>? citiesData,
    Map<String, String>? provincesData,
    // CityPickerRoute params
    bool barrierDismissible = true,
    double barrierOpacity = 0.5,
    ItemWidgetBuilder? itemBuilder,
    double? itemExtent,
    Widget? cancelWidget,
    Widget? confirmWidget,
    double borderRadius = 0,
    bool isSort = false}) {
  return Navigator.of(context, rootNavigator: true).push(
    new CityPickerRoute(
      theme: theme ?? Theme.of(context),
      canBarrierDismiss: barrierDismissible,
      barrierOpacity: barrierOpacity,
      barrierLabel:
          MaterialLocalizations.of(context).modalBarrierDismissLabel,
      child: BaseView(
        isSort: isSort,
        showType: showType,
        height: height,
        itemExtent: itemExtent,
        itemBuilder: itemBuilder,
        cancelWidget: cancelWidget,
        confirmWidget: confirmWidget,
        citiesData: citiesData ?? meta.citiesData,
        provincesData: provincesData ?? meta.provincesData,
        locationCode: locationCode,
        borderRadius: borderRadius,
      ),
    ),
  );
}