You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter开发:类Telegram的ModalBottomSheet选图及相机功能,求推荐包

实现Telegram式图片选择UI的推荐包

要实现你描述的功能,推荐结合以下两个第三方包来完成:

  • photo_manager:用于访问设备图库,获取并展示图片资源,能轻松在ModalBottomSheet中构建图库预览网格。
  • image_picker:用于快速调用系统相机实现拍照功能,同时也支持从图库单张选择图片。

简单实现思路

  1. 点击添加图片按钮时,调用showModalBottomSheet弹出底部弹窗。
  2. 弹窗顶部放置相机入口按钮,点击后调用image_picker的相机拍照方法。
  3. 弹窗下半部分用photo_manager加载图库图片,以网格形式展示,点击图片后完成选择。

核心代码示例

引入依赖

在pubspec.yaml中添加:

dependencies:
  photo_manager: ^2.7.2
  image_picker: ^1.0.4

调用相机示例

final ImagePicker _picker = ImagePicker();
Future<void> _takePhoto() async {
  final XFile? photo = await _picker.pickImage(source: ImageSource.camera);
  if (photo != null) {
    // 处理拍照后的图片逻辑
  }
}

加载图库图片示例

final List<AssetEntity> _images = [];
Future<void> _loadGalleryImages() async {
  final PermissionState ps = await PhotoManager.requestPermissionExtend();
  if (ps.isAuth) {
    final List<AssetPathEntity> paths = await PhotoManager.getAssetPathList(type: RequestType.image);
    if (paths.isNotEmpty) {
      final List<AssetEntity> assets = await paths[0].getAssetListPaged(page: 0, size: 20);
      setState(() => _images.addAll(assets));
    }
  }
}

这种组合方式既能自定义ModalBottomSheet的UI样式,又能灵活控制图库展示和相机调用逻辑,完全贴合Telegram的交互需求。

内容的提问来源于stack exchange,提问作者Heike Heinrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:46:00