开源一个Flutter版WanAndroid客户端

然后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: (_) {

return SpinKitFadingCircle(

color: AppColors.colorPrimary,

);

});

//取消对话框

Navigator.of(context).pop();

5.13 间距的简单方式

可以用Padding和margin来实现.其实还有一种方式,可以在Column和Row中快速增加一段间距,利用SizedBox,类似Android中的Space

SizedBox(width: 10.0),

5.14 收起软键盘

总结

其实要轻松掌握很简单,要点就两个:

  1. 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。


《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。

[外链图片转存中…(img-CigGDD54-1715263621561)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值