我有一个自定义视图,其中包含两行,每行包含4个其他自定义视图,并且围绕这8个自定义视图中的每一个都有边框。
在我使用ConstraintLayout
的xml中,我有第一行和第二行的两个不可见视图,这有助于我使视图具有相同的width
- s和{ {1}} - :S
设计工作得很好但令我烦恼的是渲染太慢了。我尝试删除了height
个视图,如果没有它们,它似乎工作得更快。
我的问题是:有没有办法改善这种观点的表现,或者是正确的做法。
constraints
我使用的是
xml
答案 0 :(得分:1)
有不同的方法来优化布局。首先,嵌套ConstraintLayout
是一个坏主意。
1)您应删除所有边框视图并创建形状,并将其设置为 FilterObjectTypeWithImageView 视图的背景。删除26个视图是一个很大的胜利,您的布局将更具可读性。
2)您可以使用3个垂直 Guidlines
,而不是使用嵌套约束布局。百分比值为25%,50%,75%并约束所有约束的视图。您的自定义视图将是屏幕的1/4,app:layout_constraintDimensionRatio="1:1"
将达到相同的高度。
最后,您将拥有3个Guidlines
和4个自定义视图,它会更快更简单layout
。
答案 1 :(得分:0)
我通过应用3 vertical guidelines
并删除了app:layout_constraintDimensionRatio="1:1"
中8个项目的grid
来解决性能问题,因为此时不需要这样做。