pickAssetsWithDelegate<Asset, Path, PickerProvider extends AssetPickerProvider<Asset, Path>> static method

Future<List<Asset>?> pickAssetsWithDelegate<Asset, Path, PickerProvider extends AssetPickerProvider<Asset, Path>>(
  1. BuildContext context, {
  2. required AssetPickerBuilderDelegate<Asset, Path> delegate,
  3. required PickerProvider provider,
  4. bool useRootNavigator = true,
  5. Curve routeCurve = Curves.easeIn,
  6. Duration routeDuration = const Duration(milliseconds: 300),
})

Call the picker with provided delegate and provider. 通过指定的 delegateprovider 调用选择器

Implementation

static Future<List<Asset>?> pickAssetsWithDelegate<Asset, Path,
    PickerProvider extends AssetPickerProvider<Asset, Path>>(
  BuildContext context, {
  required AssetPickerBuilderDelegate<Asset, Path> delegate,
  required PickerProvider provider,
  bool useRootNavigator = true,
  Curve routeCurve = Curves.easeIn,
  Duration routeDuration = const Duration(milliseconds: 300),
}) async {
  await permissionCheck();

  final Widget picker = ChangeNotifierProvider<PickerProvider>.value(
    value: provider,
    child: AssetPicker<Asset, Path>(
      key: Constants.pickerKey,
      builder: delegate,
    ),
  );
  final List<Asset>? result = await Navigator.of(
    context,
    rootNavigator: useRootNavigator,
  ).push<List<Asset>>(
    AssetPickerPageRoute<List<Asset>>(
      builder: picker,
      transitionCurve: routeCurve,
      transitionDuration: routeDuration,
    ),
  );
  return result;
}