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); }