-
首先得安装Xcode(7.8G)
-
然后安装 cocoapods
sudo gem install cocoapods
-
然后在ios工程下,执行
pod install
,引入那些依赖 -
然后用AS打开ios项目里面的Info.plist,点击右上角的用Xcode打开.
-
编辑Podfile,将顶部的
platform :ios, '9.0'
注释放开 -
运行到模拟器上.
5.4 如何快速解析json
Flutter不支持运行时反射,所以没有像Gson这样自动解析JSON的库来降低解析成本.在Flutter中解析JSON需要完全手动进行操作,麻烦.
可以在AS上装FlutterJsonBeanFactory这个插件,然后右键New->JsonToDartBeanAction,输入文件名和json数据.即可自动生成bean对象,和它所对应的解析代码.
原理是它生成了一个JsonConvert,然后这里面可以根据运行时type去选择应该解析哪一个类对象.
然后bean类在声明的时候是混入了JsonConvert的,可以直接使用JsonConvert里面的方法,完美.
5.5 Flutter ScrollView (滚动视图)
ScrollView是一个带有滚动的视图组件,它本身由三部分组成
-
Scrollable - 它监听各种用户手势并实现滚动的交互设计。
-
Viewport - 它通过在滚动视图内仅显示一部分小部件来实现滚动的可视化设计。
-
Slider - 它们是可以组合以创建各种滚动效果的小部件,如列表,网格和扩展标题。
Scroll是一个抽象类,通常使用CustomScrollView
CustomScrollView(
shrinkWrap: true,
// 内容
slivers: [
new SliverPadding(
padding: const EdgeInsets.all(20.0),
sliver: new SliverList(
delegate: new SliverChildListDelegate(
[
const Text(‘A’),
const Text(‘B’),
const Text(‘C’),
const Text(‘D’),
],
),
),
),
],
)
5.6 处理Text超出问题
可以放Row或Column中,用Expanded包起来,然后用maxLines控制行数,用overflow: TextOverflow.ellipsis,
控制超出部分的展示.
5.7 让一个ListView支持下拉刷新
非常简单,
使用官方自带的RefreshIndicator即可,将listview放child,然后实现一个_pullToRefresh下拉刷新时调用的方法(做下拉刷新的逻辑).
RefreshIndicator(
child: listView,
onRefresh: _pullToRefresh,
);
Future _pullToRefresh() {
loadData();
//这里Feature不能返回 null
return Future(() => LogUtil.d(“lalala”));
}
5.8 获取屏幕宽度,高度
MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height
5.9 封装通用标题栏
标题栏,每个界面都需要,所以封装一个,取需.
///get通用状态栏
static AppBar getCommonAppBar(BuildContext context, String title, {double fontSize, List actions}) {
if (title == null) {
title = “”;
}
return AppBar(
leading: IconButton(
icon: Icon(
Icons.arrow_back,
color: Colors.white,
),
//点击返回
onPressed: () {
if (context != null) {
Navigator.pop(context);
}
},
),
title: Text(
title,
style: TextStyle(
color: Colors.white,
fontSize: fontSize == null ? 18.0 : fontSize,
),
),
//标题栏居中
centerTitle: true,
//右边的action 按钮
actions: actions == null ? [] : actions,
);
}
5.10 格式化String
dart中格式化String,需要引入三方库sprintf
,使用方式如下:
sprintf(“lg/collect/%s/json”, [15615]);
5.11 获取Android/iOS本地目录
需要引入三方库path_provider
,用于查找文件系统上的常用位置,支持Android和iOS.免得去写一原生代码,这个三方库帮我们封装好了.
Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;
Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;
5.12 展示一个Dialog
以下方法是dart的material包下面的方法.
//展示对话框
showDialog(
context: context,
barrierDismissible: false,
builder: (_) {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://img-blog.csdnimg.cn/img_convert/f1beb7eceaf97d200824a5b28866805f.jpeg)
最后
代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。
所以,长征路还长,大家还是好好地做个务实的程序员吧。
最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
24/03/13/H4lCoPEF.jpg" />
最后
代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。
所以,长征路还长,大家还是好好地做个务实的程序员吧。
最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~