开源一个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 收起软键盘

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
5188024)]

[外链图片转存中…(img-M7JOlel0-1715905188025)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值