ios - 如何使用flutter,wordpress在我的应用程序中添加拉动刷新?

标签 ios json api flutter dart

关闭。这个问题需要details or clarity .它目前不接受答案。












想改进这个问题?通过 editing this post 添加详细信息并澄清问题.

1年前关闭。




Improve this question




我的应用程序使用 flutter 构建测试应用程序博客,后端 wordpress 但我不知道在哪里添加
你能帮我吗?
我的应用程序使用 flutter 构建测试应用程序博客,后端 wordpress 但我不知道在哪里添加
你能帮我吗?

主要.dart

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

@override

Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'blog',
home: HomeScreen(),);}}

主页.dart

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

List<SinglePost> parsePosts(response) {
  final parsed = jsonDecode(response)['posts'].cast<Map<String, dynamic>>();
  return parsed.map<SinglePost>((json) => SinglePost.fromJson(json)).toList();
}

Future<List<SinglePost>> _getPosts() async {
  final response = await http.get(baseUrl);
  return compute(parsePosts, response.body);
}

class _HomeScreenState extends State<HomeScreen> {
  Future<List<SinglePost>> _postsFuture;
  @override
  void initState() {
    super.initState();
    _postsFuture = _getPosts();
  }

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: FutureBuilder<List<SinglePost>>(
        future: _postsFuture,
        builder: (context, snapshot) {
          if (snapshot.hasError)
            return Scaffold(
              body: Center(
                child: Text("Error"),
              ),
            );
          if (snapshot.hasData) {
            return Scaffold(
              appBar: AppBar(
                elevation: 0,
                title: Text(
                  "blog",
                  style: Theme.of(context)
                      .textTheme
                      .title
                      .copyWith(color: Colors.black),
                ),
                actions: <Widget>[
                  Padding(
                    padding: const EdgeInsets.all(9.0),
                    child: ClipRRect(
                      borderRadius: BorderRadius.circular(9),
                      child: Image.network(
                        "${snapshot.data[0].avatarURL}",
                        fit: BoxFit.cover,
                      ),
                    ),
                  )
                ],
              ),
              body: ListView(
                children: <Widget>[
                  Container(
                    height: MediaQuery.of(context).size.height * .35,
                    margin: const EdgeInsets.symmetric(vertical: 15.0),
                    child: PageView.builder(
                      controller: PageController(viewportFraction: .76),
                      scrollDirection: Axis.horizontal,
                      itemCount: snapshot.data.length,
                      itemBuilder: (context, i) => OverlayedContainer(
                        authorAvatar: "${snapshot.data[i].avatarURL}",
                        author: "${snapshot.data[i].authorName}",
                        image: "${snapshot.data[i].featuredImage}",
                        title: "${snapshot.data[i].title}",
                        onTap: () => Navigator.push(
                          context,
                          MaterialPageRoute(
                            builder: (context) =>
                                PostScreen(postData: snapshot.data[i]),
                          ),
                        ),
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.all(9),
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Text(
                          "All Posts",
                          style: Theme.of(context).textTheme.subtitle,
                        ),
                        ListView.builder(
                          shrinkWrap: true,
                          physics: NeverScrollableScrollPhysics(),
                          itemCount: 5,
                          itemBuilder: (context, i) => PostContainer(
                            author: "${snapshot.data[i].authorName}",
                            image: "${snapshot.data[i].featuredImage}",
                            title: "${snapshot.data[i].title}",
                            onTap: () => Navigator.push(
                              context,
                              MaterialPageRoute(
                                builder: (context) =>
                                    PostScreen(postData: snapshot.data[i]),
                              ),
                            ),
                          ),
                        )
                      ],
                    ),
                  )
                ],
              ),
            );
          } else {
            return Scaffold(
              body: Center(
                child: CircularProgressIndicator(),
              ),
            );
          }
        },
      ),
    );
  }
}

不知道在哪里添加
你能帮我吗?
我的应用程序使用 flutter 构建测试应用程序博客,后端 wordpress 但我不知道在哪里添加
你能帮我吗?

最佳答案

我知道
添加 pubsec.yaml
并导入包
..
..
但是在 home.dart 里面写代码我不知道

关于ios - 如何使用flutter,wordpress在我的应用程序中添加拉动刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61928010/

相关文章:

ios - 当我们快速从 Presented ViewController 转到 Previous ViewController 时调用哪个方法

ios - SpriteKit SKScene 中的相机属性始终为 nil

ios - 将 NSArray 拆分为固定大小,其余部分

javascript - 如何使用 RSS2JSON 显示和格式化日期?

c - 为什么 Linux C API 'open' 支持函数重载?

api - 如何通过 Telegram Bot 在http请求中发送带有我的文本的标签字符?

ios - 在给定时间捕获 AVPlayer 流 .m3u8 的 UIImage 帧?

java - 如何将 3h 解析为 java?(无法设置以数字开头的变量)

ios - 快速获取 json 响应中的计数(项目数)

api - 在服务器上存储 API key