专栏名称: 复利大王
分享和推送Java/Android方向的技术和文章,让你成为这方面的大牛,让你每天都成长一点。同时,我们也会邀请BAT的大牛分享原创!
目录
相关文章推荐
51好读  ›  专栏  ›  复利大王

Components for Android: 一个Facebook的高效的声明式UI框架

复利大王  · 公众号  · android  · 2017-05-03 09:38

正文

请到「今天看啥」查看全文


。你只需利用给定的不可变输入声明UI的不同状态然后框架就会为你做剩余的事情。

也许最好的描述方式是代码:

HeaderComponentSpec我们称之为component spec。它只是一个具有特殊注解的Java类。在编译时,注解处理器将生成一个HeaderComponent类以及一个builder,builder带有匹配了component spec中使用的变量的方法。你可以这样使用HeaderComponent:

C4A使用 Flexbox ,一个web上广泛存在的强大的布局系统,由我们开源跨平台的实现 css-layout 支持。HeaderComponent在屏幕上的效果如下:


HeaderComponentSpec用起来感觉非常简单,只需处理纯函数。你只要传入一些参数然后就返回一个布局树。这和安卓UI上状态化,命令式的代码形成鲜明的对比。

在我们探索这个framework的特性之前,让我们先快速浏览一遍它是如何在屏幕上显示控件的。

在C4A中,布局和渲染是分为两个独立的步骤实现的:布局(layout)和装载(mount)。








请到「今天看啥」查看全文