在Android应用开发过程当中,布局是一项最基础的工做。android
如何进行高效布局,提升开发效率呢? 我通过长期实践,总结了如下几条建议:后端
就是咱们最经常使用的,经过xml来进行布局。工具
优势:所见即所得。布局建立,修改,预览都很是的方便。布局
缺点:灵活性稍差。大数据
经过Java代码来实现布局。 spa
优势:灵活性好。在应用运行过程当中,能够随时去调整布局,例如:增长未加载的新控件,调整控件的位置等。xml
缺点:可见性差,维护很是的繁琐。blog
你们都知道,一个项目,一个功能,不可能自始至终都是同一我的进行维护的。人员流动,工做调整,这些均可能形成如下结果:你去接手别人维护的功能/模块,别人接手你维护的功能/模块。基于这种现状,在Android应用布局方面,可见性,可维护性显得尤其重要。 所以,我推荐的布局原则是:“静态布局为主,动态布局为辅。”图片
推荐的理由有两点:ip
布局是一个相对持续的过程。可能UI/UE会随时让你调整下控件之间的间距,位置等。动态布局,须要每次修改后,编译运行在手机上才能看到实际的效果。而静态布局,能够随时修改,随时预览效果。
静态布局,你能够经过阅读xml,预览效果,对于整个界面,能够快速的熟悉和掌握。而对于动态布局,你必须确认你对全部有关的代码熟悉后,静态布局和动态布局相结合,在脑海中对整个界面进行拼接,才能有一个总体把握。而随着布局变得复杂,这将变得愈来愈难。
有些布局,预览效果很是差。咋一看上去,一片空白。这样其实丧失了静态布局的一大优势“所见即所得。”整个布局以后,你编译运行到手机上,才能看到你设置的属性,间距等是否正常生效了。
这里,我推荐一个原则:“尽可能在布局中展现你要的效果。”
怎么实现呢?这里须要用到一个工具,tools。
Tools工具的使用仅仅针对IDE有效,并不会被打包进应用。
具体步骤以下:
在布局最外层,加上下面这句话,声明一下。
通常的控件属性以“android:”开头。新增一个一样的属性,改成以“tools:”开头。
例如:一个TextView控件,须要设置默认状态为不可见。
可是你想预览它,又担忧改成android:visiblity="visible"以后忘了改回来,直接提交了。如今你没必要担忧,新增一个一样名称的属性,以“tools:”
开头,就能够了。
因为Android开源的特性,形成Android手机种类繁多。这些手机拥有不一样版本的系统,不一样的屏幕分辩率,不一样的配置等。
咱们在进行布局的时候,要时刻谨记UI适配,尽最大限度去适配不一样的分辨率。
这里,我总结几点经验:
Android控件,默认会带有一点padding。 有些背景切图,可能会留有较大的余白。而UI/UE的标注图可能并无考虑这些因素,所以,UI/UE的标注图仅供参考。实际布局过程当中,可能须要稍微调整。
保留重要标注尺寸,忽略次要标注尺寸。举个简单的例子。假设一个顶部区域,固定高度。须要放置主标题,副标题两个文本控件。 建议这么布局,主标题和副标题使用一个竖直的LinearLayout进行包裹。主标题和副标题控件之间按照标注图设置精准的间距。以后,把整个LinearLayout竖直居中在顶部区域。
设置android:weight,来进行按照比例布局。
文本控件,须要考虑,文本过长时的省略策略。
防止控件相互压盖
切图至少提供两套,hdpi和xhdpi
Designtime Layout Attributes(http://tools.android.com/tips/layout-designtime-attributes?spm=5176.blog8192.yqblogcon1.7.wIjHWO)
Tools Attributes(http://tools.android.com/tech-docs/tools-attributes?spm=5176.blog8192.yqblogcon1.8.nN5eox)
阿里百川(baichuan.taobao.com)是阿里巴巴集团“云”+“端”的核心战略是阿里巴巴集团无线开放平台,基于世界级的后端服务和成熟的商业组件,经过“技术、商业及大数据”的开放,为移动创业者提供可快速搭建App、商业化APP并提高用户体验的解决方案;同时提供多元化的创业服务-物理空间、孵化运营、创业投资等,为移动创业者提供全面保障。