Показать все изображения из каталога в список в Flutter - PullRequest
0 голосов
/ 14 февраля 2019

Мне было интересно, есть ли способ показать все изображения или файлы в определенном каталоге, расположенном на мобильном устройстве пользователя, в виде списка / массива во флаттере, чтобы я мог использовать его в ListView.

Спасибо любомупомощь приветствуется.

PS: я хотел попробовать с path_provider, но не знал как.

1 Ответ

0 голосов
/ 19 февраля 2019

Мне удалось найти решение.

Мне пришлось работать с MethodChannels в другом, чтобы добиться этого.

После написания Java-кода для получения файласписок, я вошел в флаттер через канал

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();
                  }

              });

Dart Code

 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

...