加群452892873 下载对应39课文件,运行方法,建好项目,直接替换lib目录

pubspec.yaml

city_pickers: ^0.1.

AddressAdd.dart

import 'package:flutter/material.dart';
import 'package:flutter_jdshop/services/ScreenAdapter.dart';
import 'package:flutter_jdshop/widget/JdButton.dart';
import 'package:flutter_jdshop/widget/JdText.dart';
import 'package:city_pickers/city_pickers.dart'; class AddressAddPage extends StatefulWidget {
AddressAddPage({Key key}) : super(key: key); _AddressAddPageState createState() => _AddressAddPageState();
} class _AddressAddPageState extends State<AddressAddPage> {
String area = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('增加收货地址'),
),
body: Container(
child: ListView(
children: <Widget>[
JdText(
text: "收货人姓名",
),
SizedBox(height: ),
JdText(
text: "收货人电话",
),
SizedBox(height: ),
Container(
padding: EdgeInsets.only(left: ),
height: ScreenAdapter.height(),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(width: , color: Colors.black12))),
child: InkWell(
child: Row(
children: <Widget>[
Icon(Icons.add_location),
this.area.length >
? Text("${this.area}",
style: TextStyle(color: Colors.black54))
: Text("省/市/区",
style: TextStyle(color: Colors.black54))
],
),
onTap: () async {
Result result = await CityPickers.showCityPicker(
context: context,
cancelWidget:
Text('取消', style: TextStyle(color: Colors.black54)),
confirmWidget:
Text("确定", style: TextStyle(color: Colors.blue))); setState(() {
this.area =
"${result.provinceName}/${result.cityName}/${result.areaName}";
});
},
),
),
SizedBox(height: ),
JdText(
text: "详细地址",
maxLines: ,
height: ,
),
SizedBox(height: ),
RaisedButton(
child: Text("弹出省市区"),
onPressed: () async {
Result result = await CityPickers.showCityPicker(
context: context,
cancelWidget:
Text('取消', style: TextStyle(color: Colors.black54)),
confirmWidget:
Text("确定", style: TextStyle(color: Colors.blue)));
},
),
SizedBox(height: ),
JdButton(
text: "增加",
color: Colors.red,
)
],
),
));
}
}

AddressEdit.dart

import 'package:flutter/material.dart';
class AddressEditPage extends StatefulWidget {
AddressEditPage({Key key}) : super(key: key); _AddressEditPageState createState() => _AddressEditPageState();
} class _AddressEditPageState extends State<AddressEditPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('修改收货地址'),
),
body: Text('增加说活地址'),
);
}
}

AddressList.dart

import 'package:flutter/material.dart';
import 'package:flutter_jdshop/services/ScreenAdapter.dart'; class AddressListPage extends StatefulWidget {
AddressListPage({Key key}) : super(key: key); _AddressListPageState createState() => _AddressListPageState();
} class _AddressListPageState extends State<AddressListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('收货列表地址'),
),
body: Container(
child: Stack(
children: <Widget>[
ListView(
children: <Widget>[
ListTile(
leading: Icon(Icons.check, color: Colors.red),
title: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("张三 13325187796"),
SizedBox(height: ),
Text('北京')
]),
trailing: Icon(Icons.edit, color: Colors.blue),
)
],
),
Positioned(
bottom: ,
width: ScreenAdapter.width(),
height: ScreenAdapter.height(),
child: Container(
padding: EdgeInsets.all(),
width: ScreenAdapter.width(),
height: ScreenAdapter.height(),
decoration: BoxDecoration(
color: Colors.red,
border: Border(
top: BorderSide(width: , color: Colors.black26))),
child: InkWell(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(Icons.add, color: Colors.white),
Text('增加收货地址', style: TextStyle(color: Colors.white))
],
),
onTap: (){
Navigator.pushNamed(context,'/addressAdd');
},
)),
)
],
)),
);
}
}

JdText.dart

import 'package:flutter/material.dart';
import 'package:flutter_jdshop/services/ScreenAdapter.dart';
class JdText extends StatelessWidget {
final String text;
final bool password;
final Object onChanged;
final int maxLines;
final double height;
JdText({Key key,this.text="输入内容",this.password=false,this.onChanged=null,this.maxLines=,this.height=}) : super(key: key); @override
Widget build(BuildContext context) {
return Container(
child: TextField(
maxLines: this.maxLines,
obscureText: this.password,
decoration: InputDecoration(
hintText: this.text,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(),
borderSide: BorderSide.none
)
),
onChanged:this.onChanged,
),
height: ScreenAdapter.height(this.height),
decoration: BoxDecoration(
// color: Color.fromRGBO(233,233,233,0.8),
// borderRadius: BorderRadius.circular(30)
border: Border(
bottom:BorderSide(
width: ,
color: Colors.black12
)
)
), );
}
}

39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器的更多相关文章

  1. 01-02 Flutter仿京东商城项目 功能分析、底部导航Tab切换以及路由配置、架构搭建:(Flutter仿京东商城项目 首页布局以及不同终端屏幕适配方案)

    Flutter和Dart交流学习群:交流群:452892873 01Flutter仿京东商城项目 功能分析.底部导航Tab切换以及路由配置.架构搭建 02Flutter仿京东商城项目 首页布局以及不同 ...

  2. 41 Flutter 仿京东商城项目签名验证 增加收货地址、显示收货地址 事件广播

    加群452892873 下载对应41课文件,运行方法,建好项目,直接替换lib目录 AddressAdd.dart import 'package:dio/dio.dart'; import 'pac ...

  3. 42 Flutter仿京东商城项目 修改默认收货地址 显示默认收货地址

    CheckOut.dart import 'package:flutter/material.dart'; import '../services/ScreenAdapter.dart'; impor ...

  4. 37 Flutter仿京东商城项目 结算页面布局

    加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 CheckOut.dart import 'package:flutter/material.dart'; impo ...

  5. 07-08 Flutter仿京东商城项目 商品分类页面布局:Flutter仿京东商城项目 商品分类页面数据渲染

    Flutter实战(交流群:452892873) 本项目是一个实战项目,根据目录建文件,并复制从第一节到最新更新的文章,可以构成完整的一个请求后台数据的项目: CateModel.dart class ...

  6. 38 Flutter仿京东商城项目 渲染结算页面商品数据

    加群452892873 下载对应38课文件,运行方法,建好项目,直接替换lib目录 CartServices.dart import 'dart:convert'; import 'Storage.d ...

  7. 36 Flutter仿京东商城项目 用户登录 退出登录 事件广播更新状态

    Login.dart import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:flutter/material.da ...

  8. 34 Flutter仿京东商城项目 用户注册 注册流程 POST发送验证码 倒计时功能 验证验证码

    加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 以下列出的是本课涉及的文件. RegisterFirst.dart import 'package:flutter/ ...

  9. 26 Flutter仿京东商城项目 购物车之 event_bus事件广播 事件监听

    event_bus 介绍 在前面的课程我们给大家讲过状态管理 Provider 的使用. 通俗的讲状态管理就是:当我们想在多个页面(组件/Widget)之间共享状态(数据),或 者一个页面(组件/Wi ...

随机推荐

  1. linux网络编程之进程间通信介绍

    从今天起,开始学习进程间通信相关的东东,关于socket的编程先告一段落了,在学习进程间通信之前,首先先要了解一些概念,所以,这次不开始真正的代码编写,先纯理论,理解了为之后的更深入的学习可以打下良好 ...

  2. 必须知道的String知识点

    1.String 类型的概述 Java中String就是Unicode字符序列,例如,字符串"Java\u2122"由5个Unicode字符J.a.v.a和 ™ 组成.不像C/C+ ...

  3. 0019SpringBoot使用异步任务(多线程)与定时任务

    SpringBoot开启异步任务只需要两步配置: 1.在主类上加上注解@EnableAsync开启异步功能 2.在service层的方法上加上注解@Async指定调用方法时是异步的 SpringBoo ...

  4. git如何利用分支进行多人开发

    在使用git时,假如远程仓库有 dev 和 master 两个分支,master 作为一个稳定版分支,可用于直接发布产品,日常的开发则 push 到 dev 分支,那本地是不是要从 dev 分支中创建 ...

  5. 我们什么时候应该在C程序中使用指针?

    回答: 传递大型结构喜欢服务器请求或响应数据包. 实现链表和二叉树. 使用GPIO或硬件寄存器. 从函数中获取地址或更新值(通过引用调用) 创建动态数组. 使用函数指针创建回调函数. 注意:除此之外, ...

  6. python 虚拟环境相关命令

    1.总是记不住一些关于创建虚拟环境得命令,特在自己得博客里记录一下自己常用得命令: virtualenv -p C:\Python36\python D:\virtual\Envs\AssetScan ...

  7. js中event.preventDefault()和 event.stopPropagation( ) 方法详解

    event.preventDefault() 1.首先event.preventDefault()是通知浏览器不要执行与事件关联的默认动作,例如:  这里a标签的默认事件是跳转,这里我们告诉浏览器取消 ...

  8. 搭建gitlab服务

    安装依赖 sudo yum install curl policycoreutils openssh-server openssh-clients sudo systemctl enable sshd ...

  9. k8s aliyun mirros

    安装kubernetes的时候,需要安装kubelet, kubeadm等包,但k8s官网给的yum源是packages.cloud.google.com,国内访问不了,此时我们可以使用阿里云的yum ...

  10. 在vultr中安装k8s测试

    vultr 安装k8s *** 如果国内访问 k8s.gcr.io 很慢,或者无法访问 *** 在应用yaml文件创建资源时,将文件中镜像地址进行内容替换即可: 将k8s.gcr.io替换为 regi ...