Flutter33,Android移动开发基础
void initState() {
// TODO: implement initState
super.initState();
//尝试显示用户信息
_showUerInfo();
eventBus.on().listen((event) {
//TODO
//获取用户信息并显示
_getUerInfo();
});
eventBus.on().listen((event) {
//TODO
});
}
_getUerInfo() {
DataUtils.getAccessToken().then((accessToken){
if (accessToken == null || accessToken.length == 0) {
return;
}
Map<String, dynamic> params = Map<String, dynamic>();
params[‘access_token’] = accessToken;
params[‘dataType’] = ‘json’;
print(‘Debug accessToken: $accessToken’);
NetUtils.get(AppUrls.OPENAPI_USER, params).then((data) {
//{“gender”:“male”,“name”:“Damon2019”,“location”:“湖南 长沙”,“id”:2006874,“avatar”:“https://oscimg.oschina.net/oscnet/up-21zvuaor7bbvi8h2a4g93iv9vve2wrnz.jpg!/both/50x50?t=1554975223000”,“email”:“3262663349@qq.com”,“url”:“https://my.oschina.net/damon007”}
//data: {“gender”:“male”,“name”:“Augfun”,“location”:“广东 深圳”,“id”:4571926,“avatar”:“https://static.oschina.net/uploads/user/2285/4571926_50.jpg?t=1593452705000”,“email”:“1234556@outlook.com”,“url”:“https://my.oschina.net/u/4571926”}
print(‘Debug data: $data’);
//
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
Map<String, dynamic> map = json.decode(data);
// if (mounted) {
// setState(() {
// userAvatar = map[‘avatar’];
// userName = map[‘name’];
// });
// }
// DataUtils.saveUserInfo(map);
});
});
}
_showUerInfo() {
}
@override
Widget build(BuildContext context) {
return ListView.separated(
itemBuilder: (context, index) {
//My界面的头部
if(index == 0){
//头像用Container装起来
return _buildHeader();
}
index -= 1;
return ListTile(
leading: Icon(menuIcons[index]),
title: Text(menuTitles[index]),
trailing: Icon(Icons.arrow_forward_ios),//尾巴
onTap: () {
_login();
},
);
},
//分割线
separatorBuilder: (context, index) {
return Divider();
},
itemCount: menuTitles.length + 1
);
}
_login() async {
final result = await Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => LoginWebPage()));
if (result != null && result == ‘refresh’) {
print(‘Debug profile page LoginEvent’);
//登录成功
eventBus.fire(LoginEvent());
}
}
Container _buildHeader() {
return Container(
height: 150.0,
color: Color(AppColors.APP_THEME),
//头像的布局填充
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
GestureDetector(
child: Container(
width: 60.0,
height: 60.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: Color(0xffffffff),
width: 2.0,
),
image: DecorationImage(
//加载网路图片
image: AssetImage(‘assets/images/ic_avatar_default.png’),
fit: BoxFit.cover,
),
),
),
onTap: () {
//执行登录
_login();
},
),
SizedBox(
),
Text(
‘点击头像登录’,
style: TextStyle(color: Color(0xffffffff)),
),
],
),
),
);
}
}
Flutter33,Android移动开发基础相关推荐
- android界面数据存储,Android应用开发基础之数据存储和界面展现(二)
Android应用开发基础之数据存储和界面展现(二) 常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRight ...
- android 启动服务同时传递数据,Android Studio开发基础之起动Service,并通过从Activity向Service传递数据...
Android Studio开发基础之启动Service,并通过从Activity向Service传递数据 本实例演示启动Service,并通过从Activity向Service传递数据,新建一个Se ...
- Android视频开发基础
Android视频开发基础 版权声明:本文为[viclee]原创,如需转载请注明出处~ https://blog.csdn.net/goodlixueyong/article/details/6205 ...
- 音视频开发(19)---Android视频开发基础(一)
Android视频开发基础(一) 版权声明:本文为[viclee]原创,如需转载请注明出处~ https://blog.csdn.net/goodlixueyong/article/details/6 ...
- Android视频开发基础(二)
Android视频开发基础(二) https://blog.csdn.net/goodlixueyong/article/details/62447452 前一篇文章详细介绍了视频的一些基本概念,这些 ...
- Android App开发基础
Android App开发基础 App的开发特点 (1)App的运行环境 1.使用数据线把手机连到电脑上 2.在电脑上安装手机的驱动程序 3.打开手机的开发者选项并启用USB调试 4.将连接的手机设为 ...
- 湖南某科技大学 安卓Android移动开发基础期中考试笔记(持续更新)
湖南某科技大学 安卓Android移动开发基础期中考试笔记 前言 建议大家把第三章的三个实战演练和本笔记的所有代码部分都在AS中手打一遍,手打的意思是看懂之后自己写出来,而不是照着抄.这不90分就到手 ...
- Android App开发基础篇—数据存储(SQLite数据库)
Android App开发基础篇-数据存储(SQLite数据库) 前言:Android中提供了对SQLite数据库的支持.开发人员可以在应用中创建和操作自己的数据库来存储数据,并对数据进行操作. 一. ...
- 浅谈Android游戏开发基础和经验
Android游戏开发基础和经验是本文要介绍的内容,主要是来了解并学习Android游戏开发的内容实例,具体关于Android游戏开发内容的详解来看本文. 做一个类似俄罗斯方块的android游戏开发 ...
- 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第二章:Android App 开发基础
第 2 章 Android App开发基础 本章介绍基于Android系统的App开发常识,包括以下几个方面:App开发与其他软件开发有什么不一 样,App工程是怎样的组织结构又是怎样配置的,App开 ...
最新文章
- highcharts图表组件常见问题:highcharts图表组件错误集合分析大放送
- IntelliJ IDEA 2019.2最新解读:性能更好,体验更优,细节处理更完美!
- java中的构造方法,this、super的用法
- unity 角度限制_Unity自定义可编程渲染管线(SRP)(九)——灯光照明
- geth JavaScript Console
- html中的标签在xml中被识别为什么,在strings.xml中定义html标签
- es6语法-箭头函数
- js,html条码生成
- Java—JVM加载机制
- Spring-Logback-动态修改日志级别
- 汇编程序设计语言所用环境MASM的使用
- 计算机汉字的输入方法有哪些,《计算机汉字输入方法.ppt
- linux 实现不同网段网络互通
- Javascript-API-BOM、动画函数、网页轮播图、节流阀、筋斗云、固定侧边栏返回顶部案例
- xml与map的相互转换
- POJ 2152 树型DP //很棒的题
- Lua--pairs和ipairs遍历区别
- DLL线程中坑爹的Synchronize?
- javascript实现单向链表
- 工业锅炉远程监控解决方案
热门文章
- revit 二次开发 模型线读取
- 2020数学建模医疗和养老保障问题解决办法
- php燕十八作业,布尔教育燕十八PHP基础巩固视频教程的源码分享
- 浅谈C++的函数重载
- 12. 深度学习三巨头
- 动态修改webservices地址 地址重载
- 展会预告丨第五届数字中国建设成果展览会亮点前瞻:大象机器人展示高科技,带来新体验
- android实训项目无线点餐系统服务器的设置,实现Android客户端软件与云计算的无线点餐系统设计...
- 杨辉三角c语言杭电,杭电 杨辉三角
- 微信小程序 小程序生命周期、页面导航/事件、WXS脚本(笔记)