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
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user