前面两篇介绍了关于 ConstrantLayout 的使用和相关属性 API 的介绍,这一篇我们来实际演示一下各种情况下如何使用,所以说这一篇就是前面两篇的实践,建议你先阅读前面两篇文章。
这一篇是真正的实践,如果你看过前面两篇建议你看一下这一篇,这一篇文章会让你对前面的所学恍然大悟,融汇贯通。
创建第一个约束
我们先打开 Design
面板,然后拖动一个 ImageView
控件到画布:
接下来设置一个默认图片,我就设置了里面自带的默认背景图片,此时整个界面的代码如下:
声明:
本文是对Mark Allison系列博客的翻译和学习笔记,感谢作者提供的demo和这么好的博客。
在上一篇《Android结构设计系列[1]–初识工程》中我们认识了我们显示天气的APP,接下来将开始我们的结构优化。
在优化项目结构之前我们得先知道什么样的工程才是结构合理的工程。在最早的一篇博文中我对这个问题进行了简要归纳,请参考《六大设计原则浅析》,符合这些设计原则的工程就是一个结构合理的工程,我们要实现这样的结构得先从耦合性方面考虑,第一步我们先做分离。
接下来我们回顾一下上一篇中的工程目录结构:
|
|
从整个结构和上一篇的分析中会发现大部分逻辑都集中在CurrentWeatherFragment,包括获取位置信息、初始化网络请求框架、请求数据、绑定显示数据。获取位置信息的方式有很多种,部分手机并不支持系统获取定位,这个时候我们需要更换定位系统,则会发现我们的定位是和逻辑混合在一起,不容易拆解而且更加麻烦的是不容易进行单元测试。接下来我们将定位功能先拆分出来。
声明:
本文是对Mark Allison系列博客的翻译和学习笔记,感谢作者提供的demo和这么好的博客。
从标题上想必大家已经猜出来了,从本篇开始将是一个系列的Android工程结构设计博文,我们将从一个简单的获取天气并展示的APP开始,一步步的重构并研究如何更好的设计整个工程的结构。本系列中一部分知识点在以前的博文中可以找到相关知识,另一部则是新的框架和特性,如果遇到会详细说明。
说明:在本系列中我会认为大家能熟练使用Kotlin开发Android项目,并且会使用Retrofit、RxJava等主流框架,这些技术会从一开始就会出现在源码中。
本案例中的天气数据来自 OpenWeatherApp API,在该页面注册后会发送一份邮件包含一个API Key。
html布局
|
|
|
|
html布局
|
|
css布局
|
|
为当前页面的页面滚动事件添加事件处理函数.
|
|
BOM的核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象。这意味着在网页中定义的任何对象,变量和函数,都以window作为其global对象。
|
|