一尘不染

将目录中的所有图像显示到Flutter中的列表

flutter

我想知道是否有一种方法可以将用户移动设备中特定目录中的所有图像或文件显示到列表/数组中,以便可以在ListView中使用。

谢谢任何帮助。

PS:我想尝试使用path_provider,但不知道该怎么做。


阅读 271

收藏
2020-08-13

共1个答案

一尘不染

我能够找到解决方案。

我必须与其他方法通道一起使用以实现此目的。

在编写了用于获取文件列表的Java代码之后,我通过一个通道传递给flutter

用于获取文件的Java方法

private List<String> getImages(){
        String path = Environment.getExternalStorageDirectory().toString();

        List<String> imgs = new ArrayList<String>();
        File directory = new File(path);
        List<String> files = Arrays.asList(directory.list());

        imgs = files;

        return imgs;
    }

Java MethodChannel

new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
              (call, result) -> {
                  if (call.method.equals("getImages")) {
                      List<String> imgs = getImages();
                      if (imgs.size() <= 0) {
                          result.error("Empty", "No Images.", null);
                      } else {
                          result.success(imgs);                      }
                  } else {
                      result.notImplemented();
                  }

              });

飞镖代码

 Future<void> _getImages() async {
    List images;
    try {
      final List result = await platform.invokeMethod('getImages');
      images = result;
    } on PlatformException catch (e) {
      print("Error");
    }

    setState(() {
      imgs = images;
    });
  }

Github上有完整的源代码

2020-08-13