Flutter入门并开发天气预报APP(8)——天气预报第二步-选择省、市、区界面及网络请求

文章目录1. 实现界面省市区2. 网络请求转为Dart类生成.g.dart文件网络请求3. UI异步更新省市区县项目Github地址:a1203991686/CoolWeather_Flutter在第六章中我们写了天气预报的页面, 但是你作为天气预报肯定能选择城市吧。所以我们现在来写选择省、市、区的界面。我们使用的是郭霖大神在第一行代码最后面酷欧天气的API。1. 实现界面既然是一个...
摘要由CSDN通过智能技术生成

项目Github地址:a1203991686/CoolWeather_Flutter

第六章中我们写了天气预报的页面, 但是你作为天气预报肯定能选择城市吧。所以我们现在来写选择省、市、区的界面。

我们使用的是郭霖大神在第一行代码最后面酷欧天气的API。

1. 实现界面

既然是一个选择省市区的界面,那么我们就用ListView

首先看一下大致界面:
在这里插入图片描述

就直接使用ListViewbuilder()方法,忘了的同学可以看前面第5章

view文件夹下新建一个类provinces_page.dart,接下来就在这个文件里面写代码:

class ProvincesPageWidget extends StatefulWidget {
   
    ProvincesPageWidget({
   Key key}) : super(key: key);

    @override
    ProvincesPageStateWidget createState() => new ProvincesPageStateWidget();
}

class ProvincesPageStateWidget extends State<ProvincesPageWidget> {
   
    @override
    Widget build(BuildContext context) {
   
        return Scaffold(
            appBar: new AppBar(
                title: Text(
                    "省份",
                    style: TextStyle(fontSize: 25.0),
                ),
            ),
            body: ListView.builder(
                itemCount: 30,
                itemBuilder: (context, index) {
   
                    return ListTile(
                            title: Text("$index"),
                    );
                },
            ),
        );
    }
}

和省一样。在view文件夹下新建一个类city_page.dart,接下来就在这个文件里面写代码。照着省的依葫芦画瓢,写一个ListView

和省一样。在view文件夹下新建一个类counties_page.dart,接下来就在这个文件里面写代码。照着省的依葫芦画瓢,写一个ListView

2. 网络请求

网络请求可以看下之前第7章的内容。主要是通过Dio进行网络请求。大家可以看下第7章网络请求的内容。

我们网络请求主要需要以下几个API:

  • 请求省份列表:http://guolin.tech/api/china
  • 请求对应市列表:http://guolin.tech/api/china/provinceID
  • 请求对应区县列表:http://guolin.tech/api/china/provinceID/cityID

由于我们在之前文章中使用的省作为例子,这块我们就用区县作为例子:

转为Dart类

首先使用网站https://caijinglong.github.io/json2dart/来讲Json数据转为Dart实体类:
在这里插入图片描述

然后在项目lib目录新建一个文件夹。名为bean。这个文件夹主要存放实体类的代码。然后在这个文件夹下面新建一个dart文件,命名为Counties。然后把生成的Dart代码复制粘贴进去。但是你会发现复制进去后会报错,这个不用急,接下来我们来处理错误。

生成.g.dart文件

接下来在项目根目录的pubspec.yaml文件的dependencies项下面添加依赖json_annotationdev_dependencies项下面添加build_runnerjson_serializable

接着打开终端,定位到项目根目录,输入
flutter packages pub run build_runner build,运行即可。运行完毕你就会发现你项目的存实体类的lib/bean目录多了一个文件,名为Counties.g.dart。同时你Counties.dart里面的错误也没有了。

网络请求

最后你就可以通过Dio来进行网络请求了。

Dio().get
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值