How does setting baselineAligned to false improve performance in LinearLayout? How does setting baselineAligned to false improve performance in LinearLayout? android android

How does setting baselineAligned to false improve performance in LinearLayout?


By setting android:baselineAligned="false" , you're preventing the extra work your app's layout has to do in order to Align its children's baselines; which can obviously increase the performance. (Fewer unnecessary operations on UI => Better performance)


how android:baselineAligned="false" help . It may not be the answer but help to get concept.

I've just managed to get 3 items (icon, text, button) centered vertically in horizontal LinearLayout.

This may seem simple, but in reality specifying android:gravity="center_vertical" as LinearLayout attribute is not enough - icon is centered, but text and button are not. This is because (presumably) text have a baseline, and centering algorithm uses it instead of 'real' vertical center. But what is worse - button (which comes next to text) is centered using text's baseline!

Specifying android:baselineAligned="false" in LinearLayout turns this off, and everything centers correctly.


// Baseline alignment requires to measure widgets to obtain the                // baseline offset (in particular for TextViews). The following                // defeats the optimization mentioned above. Allow the child to                // use as much space as it wants because we can shrink things                // later (and re-measure).                if (baselineAligned) {                    final int freeSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);                    child.measure(freeSpec, freeSpec);                }

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/LinearLayout.java#L1093