How does setting baselineAligned to false improve performance in LinearLayout?
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.
Introduction
In Android development, performance optimization is critical, especially when working with user interfaces. The LinearLayout is a commonly used ViewGroup in Android that lays out its children in a single column or a single row. One often overlooked property of LinearLayout is baselineAligned. Setting baselineAligned to false can significantly improve UI rendering performance. This article delves into the reasons why disabling baseline alignment can enhance performance, providing technical explanations and relevant examples.
Understanding baselineAligned
In LinearLayout, the baselineAligned property determines whether the baseline of the children is aligned. By default, this property is true for vertical LinearLayout, meaning it aligns the first child of the layout based on its baseline.
Key Characteristics of baselineAligned
- Baseline Alignment: It aligns the baselines of its children vertically. The baseline for any view is essentially the imaginary line upon which text characters sit.
- Default Behavior: The default value is
true, which triggers additional computations to determine the baseline of child views.
Performance Implications
Computation Overhead
When baselineAligned is true, LinearLayout performs additional calculations to determine each child's baseline. The View then has to align these baselines, which increases computational overhead. This can be particularly expensive if the children are complex views or if there are many children in the layout. Thus, setting baselineAligned to false eliminates these additional computations, resulting in faster layout rendering.
Layout Invalidation
Changes to the UI, such as adding, removing or modifying child views, can trigger layout invalidations and recalculations. With baseline alignment enabled, any such change also requires recalculating baselines, thus increasing the time taken to render updates.
Reducing Measurement Passes
When baseline alignment is disabled, LinearLayout may need fewer passes to measure and layout its children, thus improving the view's overall efficiency.
Practical Example
Consider a scenario with a vertical LinearLayout containing multiple TextViews. In default settings with baselineAligned enabled, each TextView's baseline is calculated and aligned, which can lead to a noticeable lag in rendering:
Related reading
- How does sorting a string in an array of strings and then sorting that array come out to be Oaslogalogs?
- How does TensorFlow calculate FLOPS?
- How does the epsilon hyperparameter affect tf.train.AdamOptimizer?
- How does the Hopcroft-Karp algorithm work?
- How does String substring work in Swift
- How does String.Index work in Swift
- How does the JavaScript heap handle recursion
- How does the new Docker --squash work

DSA Fundamentals
Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.