Flutter path_provider 使用

336 阅读1分钟

安装 path_provider

flutter pub add path_provider

使用 news.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';

class NewsPage extends StatefulWidget {
  const NewsPage({super.key});

  @override
  State<NewsPage> createState() => _NewsPageState();
}

class _NewsPageState extends State<NewsPage> {
  Future<String> loadData() async {
    Directory appDocumentsDir = await getApplicationDocumentsDirectory();
    return "this is server data ${appDocumentsDir.path}"; // 正常返回数据
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("新闻"),
      ),
      body: FutureBuilder(
        future: loadData(), // 读取网络数据,异步函数,返回一个Future类型
        builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
          // 检查ConnectionState是否为done,以此判断Future是否结束
          if (snapshot.connectionState == ConnectionState.done) {
            // 当Future结束时,data和error必有一个不是空
            if (snapshot.hasError) {
              // 判断是否有错误,有则显示错误
              return Center(
                child: Text("ERROR: ${snapshot.error}"),
              );
            } else {
              // 没有错误,则显示数据
              return Center(child: Text("DATA: ${snapshot.data}"));
            }
          } else {
            // Future还没结束,因此渲染一个圆形进度条
            return const Center(
              child: CircularProgressIndicator(),
            );
          }
        },
      ),
    );
  }
}