There are 3 LinearLayout containers with horizontal orientation. The first two LinearLayout each have 4 TextView children. The third one has only 3. I have created and assigned style to all of the TextView children. Style fragment:
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">.25</item>
With this style first two rows are aligned nicely and each child TextView uses a quarter of parent's width. However TextView components in the third LinearLayout each use a third of parents width.
So components alignment is like this:
A1xxxx A2xxxx A3xxxx A4xxxx
B1xxxx B2xxxx B3xxxx B4xxxx
C1xxxx C2xxxx C3xxxx
And not like this (as expected):
A1xxxx A2xxxx A3xxxx A4xxxx
B1xxxx B2xxxx B3xxxx B4xxxx
C1xxxx C2xxxx C3xxxx
Solution:
I have tried manually changing android:layout_weight property for each child in the third row and if I set layout_weight of C1, C2 and C3 to 0.25 0.25 and 0.5 I get the desired alignment.
Question: I am doing something wrong since my initial solution to have each TextView have property <item name="android:layout_weight">.25</item> does not work as expected?
You are not doing anything wrong and the result that You are getting is expected.
You just need to add
android:weightSumto 1 to the third LinearLayout. Because, by default the value ofandroid:weightSumis set to the sum of children'slayout_weight