ConstraintLayout(约束布局)是 Android Studio 推荐的布局方式,能够实现灵活的布局,减少控件之间的嵌套,从而优化界面的渲染性能。
官方文档:
以前我们用 LinearLayout、RelativeLayout 等实现的布局,现在用 ConstraintLayout 都可以实现,而且布局更轻巧,更扁平。
举个例子,要实现下面的布局,一个图标和一段文字两者居中对齐,而且文本长度不固定,考虑一下需要怎么做?
以前,我们可能会采用下面这种方式实现,通过嵌套一层 LinearLayout 来包裹要居中的元素,最后实现的效果没有任何问题,但不是最优的方案。
有了 ConstraintLayout 后,一切变得那么简单。不再需要嵌套一层,直接给元素添加约束就可以,二者通过 packed 合为一体,布局更加扁平。
这是 ConstraintLayout 的 ChainStype 属性,LinearLayout 的 layout-weight 属性也包含在其中,还可以指定左右边距的比例,实在是太灵活、太强大了。
除此之外,还有 GuideLine,Barrier,Group,PlaceHolder 等用法,支持相对定位、角度定位、比例尺寸约束等特性,有了 ConstraintLayout 还要啥自行车。
另外,从 Android Studio 的 Layout Editor 界面中可以看出,官方已经不推荐使用 Legacy 里的控件,包括 ListView、GridView、RelativeLayout 等。Layouts 里的 ConstraintLayout、LinearLayout 和 FrameLayout 可以实现绝大多数的布局,列表使用 RecyclerView 就够了。在控件选择上,没有最好的,只有最合适的。
自己是从事了七年开发的Android工程师,不少人私下问我,2019年Android进阶该怎么学,方法有没有?
没错,年初我花了一个多月的时间整理出来的学习资料,希望能帮助那些想进阶提升Android开发,却又不知道怎么进阶学习的朋友。【包括高级UI、性能优化、架构师课程、NDK、Kotlin、混合式开发(ReactNative+Weex)、Flutter等架构技术资料】,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
喜欢我的文章可以关注我的【个人主页】获取免费资料,后续我将继续分享更多Android技术干货,感谢支持!