由30多个视图组成的自定义视图的慢速渲染

时间:2018-01-09 08:22:00

标签: android xml android-constraintlayout

我有一个自定义视图,其中包含两行,每行包含4个其他自定义视图,并且围绕这8个自定义视图中的每一个都有边框。

enter image description here

在我使用ConstraintLayout的xml中,我有第一行和第二行的两个不可见视图,这有助于我使视图具有相同的width - s和{ {1}} - :S

设计工作得很好但令我烦恼的是渲染太慢了。我尝试删除了height个视图,如果没有它们,它似乎工作得更快。

我的问题是:有没有办法改善这种观点的表现,或者是正确的做法。

constraints我使用的是

xml

2 个答案:

答案 0 :(得分:1)

有不同的方法来优化布局。首先,嵌套ConstraintLayout是一个坏主意。

1)您应删除所有边框视图并创建形状,并将其设置为 FilterObjectTypeWithImageView 视图的背景。删除26个视图是一个很大的胜利,您的布局将更具可读性。

Here is how

2)您可以使用3个垂直 Guidlines ,而不是使用嵌套约束布局。百分比值为25%,50%,75%并约束所有约束的视图。您的自定义视图将是屏幕的1/4,app:layout_constraintDimensionRatio="1:1"将达到相同的高度。

enter image description here

最后,您将拥有3个Guidlines和4个自定义视图,它会更快更简单layout

答案 1 :(得分:0)

我通过应用3 vertical guidelines并删除了app:layout_constraintDimensionRatio="1:1"中8个项目的grid来解决性能问题,因为此时不需要这样做。