Why are nested weights bad for performance? Alternatives?

MobileCushion picture MobileCushion · Feb 24, 2012 · Viewed 77.9k times · Source

I have written a couple layout files where I used the layout_weight attribute to create a ratio between different views.

At some point, I start getting lint warnings about nested weights.

So, I wonder why are nested weights bad for performance, and if there is a more efficient way to create a constant ratio between view dimensions that could be used for different screen sizes and that doesn't need to specify a lot of dimension dpi values throught several layout files (for different screen sizes, I mean).

Thank you!

Answer

C.d. picture C.d. · Feb 24, 2012

Nested weights are bad for performance because:

Layout weights require a widget to be measured twice. When a LinearLayout with non-zero weights is nested inside another LinearLayout with non-zero weights, then the number of measurements increase exponentially.

It's better to use RelativeLayouts and adjust your view according to the places of other views without using specific dpi values.