nyc*_*ing 2 android android-constraintlayout
当我意识到ConstraintLayout有:
更好的布局拖放
通过更好地命名“ top-toBottomOf”更好地查看相对设置
具有比率和百分比准则的更好的布局构造
还有更多无法说明的地方,或者我只是不知道
我一直想经常使用它,因为它是如此舒适。?
就像标题一样,我很好奇ConstraintLayout在不断使用它时是否会对性能产生重大影响?
声明您的意见和证据将不胜感激。
如果您拥有良好的版本/语法,欢迎进行编辑,并且不赞成投票,请在评论下方留下您的结论。感谢Dennis进行语法校正。
与其他相比,约束布局昂贵吗?
这取决于您的用法。A ConstraintLayout类似于RelativeLayout类固醇。
如果您想要一个简单的2-3 ChildViews布局,那么使用ConstraintLayout不会那么有效。去线性布局。
“ ConstraintLayout的主要目的是修复RelativeLayout的问题,而且它做得很好。您可以执行RelativeLayout所无法完成的许多事情。并且您可以像以前从未有过的那样简化布局。此外,它解决了RelativeLayout的长期性能问题。在度量/布局阶段进行了双重评估。因此,在一个不错的程序包中,我们可以获得更好的性能,更多的功能和更简单的布局。”
由于性能改进是创建此新布局的主要原因之一,因此我进行了一些性能测试,以检查是否满足此目标。
我比较了RecyclerView中使用的布局。没什么花哨的,只是一些嵌套的LinearLayout和RelativeLayout容器。我手动将此布局移至ConstraintLayout并进行了一些相当草率的性能测试。
在使用新的ConstraintLayout时,在模拟器和Nexus 5上进行比较会导致整体性能下降。
表现最差的是测量。该onMeasure()方法大约是我用于比较的LinearLayout的十倍。而且它花了大约60倍的时间消耗大部分时间onLayout()。因此,与所讨论的LinearLayout之一相比,ConstraintLayout的onLayout()方法的命中率几乎没有关系。最后,使用ConstraintLayout进行布局膨胀所花费的时间也比使用LinearLayout所花费的时间更长。
ConstraintLayout进行了大量计算以找出在何处以及如何显示其每个子项。内部(至少)3个相当长的班正在共同努力,以获得满意的结果:LinearSystem,ConstraintWidget,和ConstraintWidgetContainer。为了完全理解性能行为,我必须深入研究这些类的深度(为此,我更喜欢在Google发布其来源时使用注释的类)。但是,只要粗略地看一下反编译的代码,看起来这些类就必须做很多事情。
一些烦恼
不过,目前并非所有人都能正常工作。现在,这些事情最让我困扰:
编辑器以意外方式更新或更改内容
这篇文章支持ConstraintLayout。
就个人而言,当我要对齐3个以上的视图时,我仅使用ConstraintLayout。它很容易使用,但同时令人讨厌。
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |