Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca2e9e11 authored by Philip Milne's avatar Philip Milne
Browse files

Fix for bug 8578258: GridLayout is forcing wrong width to TextView widgets

GridLayout is working as intended here. The bug is appears to be in RelativeLayout
(and possibly LinearLayout).

The value of RelativeLayout.DEFAULT_WIDTH = Integer.MAX_VALUE/2 is 0x3FFFFFFF has bits
set in the range that is used to flag certain conditions and states by the layout system.

In View we have:

MEASURED_SIZE_MASK = 0x00ffffff
MEASURED_STATE_MASK = 0xff000000;
MEASURED_STATE_TOO_SMALL = 0x01000000

This change fixes this bug, though it looks as if that a safer solution would be to not introduce
this constant and code path in the first place - as RelativeLayout's measurement algorithm operates
in the LTR case without it.

Change-Id: I01c51ae854620f08dd63047594486a3464c86f3a
parent 5d1a182a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -226,7 +226,12 @@ public class RelativeLayout extends ViewGroup {
    private boolean mMeasureVerticalWithPaddingMargin = false;

    // A default width used for RTL measure pass
    private static final int DEFAULT_WIDTH = Integer.MAX_VALUE / 2;
    /**
     * Value reduced so as not to interfere with View's measurement spec. flags. See:
     * {@link View#MEASURED_SIZE_MASK}.
     * {@link View#MEASURED_STATE_TOO_SMALL}.
     **/
    private static final int DEFAULT_WIDTH = 0x008000000;

    public RelativeLayout(Context context) {
        super(context);