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

Commit 899d5922 authored by Philip Milne's avatar Philip Milne
Browse files
GridLayout needs to call measure on children after it knows how large children should be

Also:

. Remove deprecated methods and XML attributes.
. Stop Spaces having margins by default.
. Remove getSpacers() and findUsed()
. Change default for row/columnOrderPreserved() from false to true.
. Improve automatic index allocation mechanism to use individual maxima.

Change-Id: Id79fbb2e70a0bf2002191ec2a9746547d896de72
parent 5c31583c
Loading
Loading
Loading
Loading
+41 −43
Original line number Diff line number Diff line
@@ -184,19 +184,19 @@ package android {
  public static final class R.attr {
    ctor public R.attr();
    field public static final int absListViewStyle = 16842858; // 0x101006a
    field public static final int accessibilityEventTypes = 16843646; // 0x101037e
    field public static final int accessibilityFeedbackType = 16843648; // 0x1010380
    field public static final int accessibilityFlags = 16843650; // 0x1010382
    field public static final int accessibilityEventTypes = 16843644; // 0x101037c
    field public static final int accessibilityFeedbackType = 16843646; // 0x101037e
    field public static final int accessibilityFlags = 16843648; // 0x1010380
    field public static final int accountPreferences = 16843423; // 0x101029f
    field public static final int accountType = 16843407; // 0x101028f
    field public static final int action = 16842797; // 0x101002d
    field public static final int actionBarSize = 16843499; // 0x10102eb
    field public static final int actionBarSplitStyle = 16843668; // 0x1010394
    field public static final int actionBarSplitStyle = 16843666; // 0x1010392
    field public static final int actionBarStyle = 16843470; // 0x10102ce
    field public static final int actionBarTabBarStyle = 16843508; // 0x10102f4
    field public static final int actionBarTabStyle = 16843507; // 0x10102f3
    field public static final int actionBarTabTextStyle = 16843509; // 0x10102f5
    field public static final int actionBarWidgetTheme = 16843683; // 0x10103a3
    field public static final int actionBarWidgetTheme = 16843681; // 0x10103a1
    field public static final int actionButtonStyle = 16843480; // 0x10102d8
    field public static final int actionDropDownStyle = 16843479; // 0x10102d7
    field public static final int actionLayout = 16843515; // 0x10102fb
@@ -208,10 +208,10 @@ package android {
    field public static final int actionModeCopyDrawable = 16843538; // 0x1010312
    field public static final int actionModeCutDrawable = 16843537; // 0x1010311
    field public static final int actionModePasteDrawable = 16843539; // 0x1010313
    field public static final int actionModeSelectAllDrawable = 16843644; // 0x101037c
    field public static final int actionModeStyle = 16843680; // 0x10103a0
    field public static final int actionModeSelectAllDrawable = 16843642; // 0x101037a
    field public static final int actionModeStyle = 16843678; // 0x101039e
    field public static final int actionOverflowButtonStyle = 16843510; // 0x10102f6
    field public static final int actionProviderClass = 16843669; // 0x1010395
    field public static final int actionProviderClass = 16843667; // 0x1010393
    field public static final int actionViewClass = 16843516; // 0x10102fc
    field public static final int activatedBackgroundIndicator = 16843517; // 0x10102fd
    field public static final int activityCloseEnterAnimation = 16842938; // 0x10100ba
@@ -257,8 +257,8 @@ package android {
    field public static final int background = 16842964; // 0x10100d4
    field public static final int backgroundDimAmount = 16842802; // 0x1010032
    field public static final int backgroundDimEnabled = 16843295; // 0x101021f
    field public static final int backgroundSplit = 16843671; // 0x1010397
    field public static final int backgroundStacked = 16843670; // 0x1010396
    field public static final int backgroundSplit = 16843669; // 0x1010395
    field public static final int backgroundStacked = 16843668; // 0x1010394
    field public static final int backupAgent = 16843391; // 0x101027f
    field public static final int baseline = 16843548; // 0x101031c
    field public static final int baselineAlignBottom = 16843042; // 0x1010122
@@ -267,7 +267,7 @@ package android {
    field public static final int borderlessButtonStyle = 16843563; // 0x101032b
    field public static final int bottom = 16843184; // 0x10101b0
    field public static final int bottomBright = 16842957; // 0x10100cd
    field public static final int bottomChevronDrawable = 16843657; // 0x1010389
    field public static final int bottomChevronDrawable = 16843655; // 0x1010387
    field public static final int bottomDark = 16842953; // 0x10100c9
    field public static final int bottomLeftRadius = 16843179; // 0x10101ab
    field public static final int bottomMedium = 16842958; // 0x10100ce
@@ -286,7 +286,7 @@ package android {
    field public static final int cacheColorHint = 16843009; // 0x1010101
    field public static final int calendarViewShown = 16843596; // 0x101034c
    field public static final int calendarViewStyle = 16843613; // 0x101035d
    field public static final int canRetrieveWindowContent = 16843651; // 0x1010383
    field public static final int canRetrieveWindowContent = 16843649; // 0x1010381
    field public static final int candidatesTextStyleSpans = 16843312; // 0x1010230
    field public static final deprecated int capitalize = 16843113; // 0x1010169
    field public static final int centerBright = 16842956; // 0x10100cc
@@ -315,15 +315,15 @@ package android {
    field public static final int codes = 16843330; // 0x1010242
    field public static final int collapseColumns = 16843083; // 0x101014b
    field public static final int color = 16843173; // 0x10101a5
    field public static final int colorActivatedHighlight = 16843676; // 0x101039c
    field public static final int colorActivatedHighlight = 16843674; // 0x101039a
    field public static final int colorBackground = 16842801; // 0x1010031
    field public static final int colorBackgroundCacheHint = 16843435; // 0x10102ab
    field public static final int colorFocusedHighlight = 16843675; // 0x101039b
    field public static final int colorFocusedHighlight = 16843673; // 0x1010399
    field public static final int colorForeground = 16842800; // 0x1010030
    field public static final int colorForegroundInverse = 16843270; // 0x1010206
    field public static final int colorLongPressedHighlight = 16843674; // 0x101039a
    field public static final int colorMultiSelectHighlight = 16843677; // 0x101039d
    field public static final int colorPressedHighlight = 16843673; // 0x1010399
    field public static final int colorLongPressedHighlight = 16843672; // 0x1010398
    field public static final int colorMultiSelectHighlight = 16843675; // 0x101039b
    field public static final int colorPressedHighlight = 16843671; // 0x1010397
    field public static final int columnCount = 16843635; // 0x1010373
    field public static final int columnDelay = 16843215; // 0x10101cf
    field public static final int columnOrderPreserved = 16843636; // 0x1010374
@@ -380,11 +380,11 @@ package android {
    field public static final int drawSelectorOnTop = 16843004; // 0x10100fc
    field public static final int drawable = 16843161; // 0x1010199
    field public static final int drawableBottom = 16843118; // 0x101016e
    field public static final int drawableEnd = 16843679; // 0x101039f
    field public static final int drawableEnd = 16843677; // 0x101039d
    field public static final int drawableLeft = 16843119; // 0x101016f
    field public static final int drawablePadding = 16843121; // 0x1010171
    field public static final int drawableRight = 16843120; // 0x1010170
    field public static final int drawableStart = 16843678; // 0x101039e
    field public static final int drawableStart = 16843676; // 0x101039c
    field public static final int drawableTop = 16843117; // 0x101016d
    field public static final int drawingCacheQuality = 16842984; // 0x10100e8
    field public static final int dropDownAnchor = 16843363; // 0x1010263
@@ -441,7 +441,7 @@ package android {
    field public static final int fastScrollTextColor = 16843609; // 0x1010359
    field public static final int fastScrollThumbDrawable = 16843574; // 0x1010336
    field public static final int fastScrollTrackDrawable = 16843577; // 0x1010339
    field public static final int feedbackCount = 16843663; // 0x101038f
    field public static final int feedbackCount = 16843661; // 0x101038d
    field public static final int fillAfter = 16843197; // 0x10101bd
    field public static final int fillBefore = 16843196; // 0x10101bc
    field public static final int fillEnabled = 16843343; // 0x101024f
@@ -494,7 +494,7 @@ package android {
    field public static final int hand_hour = 16843011; // 0x1010103
    field public static final int hand_minute = 16843012; // 0x1010104
    field public static final int handle = 16843354; // 0x101025a
    field public static final int handleDrawable = 16843653; // 0x1010385
    field public static final int handleDrawable = 16843651; // 0x1010383
    field public static final int handleProfiling = 16842786; // 0x1010022
    field public static final int hapticFeedbackEnabled = 16843358; // 0x101025e
    field public static final int hardwareAccelerated = 16843475; // 0x10102d3
@@ -503,12 +503,12 @@ package android {
    field public static final int headerDividersEnabled = 16843310; // 0x101022e
    field public static final int height = 16843093; // 0x1010155
    field public static final int hint = 16843088; // 0x1010150
    field public static final int hitRadius = 16843660; // 0x101038c
    field public static final int hitRadius = 16843658; // 0x101038a
    field public static final int homeAsUpIndicator = 16843531; // 0x101030b
    field public static final int homeLayout = 16843549; // 0x101031d
    field public static final int horizontalDivider = 16843053; // 0x101012d
    field public static final int horizontalGap = 16843327; // 0x101023f
    field public static final int horizontalOffset = 16843665; // 0x1010391
    field public static final int horizontalOffset = 16843663; // 0x101038f
    field public static final int horizontalScrollViewStyle = 16843603; // 0x1010353
    field public static final int horizontalSpacing = 16843028; // 0x1010114
    field public static final int host = 16842792; // 0x1010028
@@ -554,7 +554,7 @@ package android {
    field public static final int installLocation = 16843447; // 0x10102b7
    field public static final int interpolator = 16843073; // 0x1010141
    field public static final int isAlwaysSyncable = 16843571; // 0x1010333
    field public static final int isAuxiliary = 16843645; // 0x101037d
    field public static final int isAuxiliary = 16843643; // 0x101037b
    field public static final int isDefault = 16843297; // 0x1010221
    field public static final int isIndicator = 16843079; // 0x1010147
    field public static final int isModifier = 16843334; // 0x1010246
@@ -607,8 +607,7 @@ package android {
    field public static final int layout_centerInParent = 16843151; // 0x101018f
    field public static final int layout_centerVertical = 16843153; // 0x1010191
    field public static final int layout_column = 16843084; // 0x101014c
    field public static final deprecated int layout_columnFlexibility = 16843643; // 0x101037b
    field public static final int layout_columnSpan = 16843642; // 0x101037a
    field public static final int layout_columnSpan = 16843641; // 0x1010379
    field public static final int layout_gravity = 16842931; // 0x10100b3
    field public static final int layout_height = 16842997; // 0x10100f5
    field public static final int layout_margin = 16842998; // 0x10100f6
@@ -617,7 +616,6 @@ package android {
    field public static final int layout_marginRight = 16843001; // 0x10100f9
    field public static final int layout_marginTop = 16843000; // 0x10100f8
    field public static final int layout_row = 16843639; // 0x1010377
    field public static final deprecated int layout_rowFlexibility = 16843641; // 0x1010379
    field public static final int layout_rowSpan = 16843640; // 0x1010378
    field public static final int layout_scale = 16843155; // 0x1010193
    field public static final int layout_span = 16843085; // 0x101014d
@@ -628,7 +626,7 @@ package android {
    field public static final int layout_x = 16843135; // 0x101017f
    field public static final int layout_y = 16843136; // 0x1010180
    field public static final int left = 16843181; // 0x10101ad
    field public static final int leftChevronDrawable = 16843654; // 0x1010386
    field public static final int leftChevronDrawable = 16843652; // 0x1010384
    field public static final int lineSpacingExtra = 16843287; // 0x1010217
    field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
    field public static final int lines = 16843092; // 0x1010154
@@ -640,8 +638,8 @@ package android {
    field public static final int listDividerAlertDialog = 16843525; // 0x1010305
    field public static final int listPopupWindowStyle = 16843519; // 0x10102ff
    field public static final int listPreferredItemHeight = 16842829; // 0x101004d
    field public static final int listPreferredItemHeightLarge = 16843666; // 0x1010392
    field public static final int listPreferredItemHeightSmall = 16843667; // 0x1010393
    field public static final int listPreferredItemHeightLarge = 16843664; // 0x1010390
    field public static final int listPreferredItemHeightSmall = 16843665; // 0x1010391
    field public static final int listSelector = 16843003; // 0x10100fb
    field public static final int listSeparatorTextViewStyle = 16843272; // 0x1010208
    field public static final int listViewStyle = 16842868; // 0x1010074
@@ -672,8 +670,8 @@ package android {
    field public static final int minHeight = 16843072; // 0x1010140
    field public static final int minLevel = 16843185; // 0x10101b1
    field public static final int minLines = 16843094; // 0x1010156
    field public static final int minResizeHeight = 16843682; // 0x10103a2
    field public static final int minResizeWidth = 16843681; // 0x10103a1
    field public static final int minResizeHeight = 16843680; // 0x10103a0
    field public static final int minResizeWidth = 16843679; // 0x101039f
    field public static final int minSdkVersion = 16843276; // 0x101020c
    field public static final int minWidth = 16843071; // 0x101013f
    field public static final int mode = 16843134; // 0x101017e
@@ -689,7 +687,7 @@ package android {
    field public static final int nextFocusUp = 16842979; // 0x10100e3
    field public static final int noHistory = 16843309; // 0x101022d
    field public static final int normalScreens = 16843397; // 0x1010285
    field public static final int notificationTimeout = 16843649; // 0x1010381
    field public static final int notificationTimeout = 16843647; // 0x101037f
    field public static final int numColumns = 16843032; // 0x1010118
    field public static final int numStars = 16843076; // 0x1010144
    field public static final deprecated int numeric = 16843109; // 0x1010165
@@ -703,11 +701,11 @@ package android {
    field public static final int orderingFromXml = 16843239; // 0x10101e7
    field public static final int orientation = 16842948; // 0x10100c4
    field public static final int outAnimation = 16843128; // 0x1010178
    field public static final int outerRadius = 16843659; // 0x101038b
    field public static final int outerRadius = 16843657; // 0x1010389
    field public static final int overScrollFooter = 16843459; // 0x10102c3
    field public static final int overScrollHeader = 16843458; // 0x10102c2
    field public static final int overScrollMode = 16843457; // 0x10102c1
    field public static final int packageNames = 16843647; // 0x101037f
    field public static final int packageNames = 16843645; // 0x101037d
    field public static final int padding = 16842965; // 0x10100d5
    field public static final int paddingBottom = 16842969; // 0x10100d9
    field public static final int paddingLeft = 16842966; // 0x10100d6
@@ -792,7 +790,7 @@ package android {
    field public static final int restoreAnyVersion = 16843450; // 0x10102ba
    field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d
    field public static final int right = 16843183; // 0x10101af
    field public static final int rightChevronDrawable = 16843655; // 0x1010387
    field public static final int rightChevronDrawable = 16843653; // 0x1010385
    field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
    field public static final int ringtoneType = 16843257; // 0x10101f9
    field public static final int rotation = 16843558; // 0x1010326
@@ -868,7 +866,7 @@ package android {
    field public static final int smallIcon = 16843422; // 0x101029e
    field public static final int smallScreens = 16843396; // 0x1010284
    field public static final int smoothScrollbar = 16843313; // 0x1010231
    field public static final int snapMargin = 16843662; // 0x101038e
    field public static final int snapMargin = 16843660; // 0x101038c
    field public static final int soundEffectsEnabled = 16843285; // 0x1010215
    field public static final int spacing = 16843027; // 0x1010113
    field public static final int spinnerDropDownItemStyle = 16842887; // 0x1010087
@@ -933,7 +931,7 @@ package android {
    field public static final int tag = 16842961; // 0x10100d1
    field public static final int targetActivity = 16843266; // 0x1010202
    field public static final int targetClass = 16842799; // 0x101002f
    field public static final int targetDrawables = 16843652; // 0x1010384
    field public static final int targetDrawables = 16843650; // 0x1010382
    field public static final int targetPackage = 16842785; // 0x1010021
    field public static final int targetSdkVersion = 16843376; // 0x1010270
    field public static final int taskAffinity = 16842770; // 0x1010012
@@ -948,7 +946,7 @@ package android {
    field public static final int tension = 16843370; // 0x101026a
    field public static final int testOnly = 16843378; // 0x1010272
    field public static final int text = 16843087; // 0x101014f
    field public static final int textAllCaps = 16843672; // 0x1010398
    field public static final int textAllCaps = 16843670; // 0x1010396
    field public static final int textAppearance = 16842804; // 0x1010034
    field public static final int textAppearanceButton = 16843271; // 0x1010207
    field public static final int textAppearanceInverse = 16842805; // 0x1010035
@@ -1022,7 +1020,7 @@ package android {
    field public static final int toYScale = 16843205; // 0x10101c5
    field public static final int top = 16843182; // 0x10101ae
    field public static final int topBright = 16842955; // 0x10100cb
    field public static final int topChevronDrawable = 16843656; // 0x1010388
    field public static final int topChevronDrawable = 16843654; // 0x1010386
    field public static final int topDark = 16842951; // 0x10100c7
    field public static final int topLeftRadius = 16843177; // 0x10101a9
    field public static final int topOffset = 16843352; // 0x1010258
@@ -1052,10 +1050,10 @@ package android {
    field public static final int verticalCorrection = 16843322; // 0x101023a
    field public static final int verticalDivider = 16843054; // 0x101012e
    field public static final int verticalGap = 16843328; // 0x1010240
    field public static final int verticalOffset = 16843664; // 0x1010390
    field public static final int verticalOffset = 16843662; // 0x101038e
    field public static final int verticalScrollbarPosition = 16843572; // 0x1010334
    field public static final int verticalSpacing = 16843029; // 0x1010115
    field public static final int vibrationDuration = 16843661; // 0x101038d
    field public static final int vibrationDuration = 16843659; // 0x101038b
    field public static final int visibility = 16842972; // 0x10100dc
    field public static final int visible = 16843156; // 0x1010194
    field public static final int vmSafeMode = 16843448; // 0x10102b8
@@ -1072,7 +1070,7 @@ package android {
    field public static final int wallpaperIntraOpenExitAnimation = 16843416; // 0x1010298
    field public static final int wallpaperOpenEnterAnimation = 16843411; // 0x1010293
    field public static final int wallpaperOpenExitAnimation = 16843412; // 0x1010294
    field public static final int waveDrawable = 16843658; // 0x101038a
    field public static final int waveDrawable = 16843656; // 0x1010388
    field public static final int webTextViewStyle = 16843449; // 0x10102b9
    field public static final int webViewStyle = 16842885; // 0x1010085
    field public static final int weekDayTextAppearance = 16843592; // 0x1010348
+139 −216

File changed.

Preview size limit exceeded, changes collapsed.

+2 −14
Original line number Diff line number Diff line
@@ -2632,12 +2632,12 @@
        <attr name="alignmentMode" />
        <!-- When set to true, forces row boundaries to appear in the same order
        as row indices.
        The default is false.
        The default is true.
        See {@link android.widget.GridLayout#setRowOrderPreserved(boolean)}.-->
        <attr name="rowOrderPreserved" format="boolean" />
        <!-- When set to true, forces column boundaries to appear in the same order
        as column indices.
        The default is false.
        The default is true.
        See {@link android.widget.GridLayout#setColumnOrderPreserved(boolean)}.-->
        <attr name="columnOrderPreserved" format="boolean" />
    </declare-styleable>
@@ -3363,18 +3363,6 @@
        The default is LEFT | BASELINE.
        See {@link android.widget.GridLayout.LayoutParams#setGravity(int)}. -->
        <attr name="layout_gravity" />
        <!-- {@deprecated To make a column group lexible, ensure that every component in the
         group defines a horizontal gravity.} -->
        <attr name="layout_columnFlexibility" >
            <enum name="inflexible" value="0" />
            <enum name="canStretch" value="2" />
        </attr>
        <!-- {@deprecated To make a row group flexible, ensure that every component in the
         group defines a vertical gravity.} -->
        <attr name="layout_rowFlexibility" >
            <enum name="inflexible" value="0" />
            <enum name="canStretch" value="2" />
        </attr>
    </declare-styleable>
    <declare-styleable name="FrameLayout_Layout">
        <attr name="layout_gravity" />
+0 −2
Original line number Diff line number Diff line
@@ -1728,10 +1728,8 @@

  <public type="attr" name="layout_row" />
  <public type="attr" name="layout_rowSpan" />
  <public type="attr" name="layout_rowFlexibility" />

  <public type="attr" name="layout_columnSpan" />
  <public type="attr" name="layout_columnFlexibility" />

  <public type="attr" name="actionModeSelectAllDrawable" />

+37 −35
Original line number Diff line number Diff line
@@ -34,15 +34,17 @@ import static android.widget.GridLayout.*;
public class Activity2 extends Activity {

    public static View create(Context context) {
        GridLayout vg = new GridLayout(context);
        vg.setUseDefaultMargins(true);
        vg.setAlignmentMode(ALIGN_BOUNDS);
        GridLayout p = new GridLayout(context);
        p.setUseDefaultMargins(true);
        p.setAlignmentMode(ALIGN_BOUNDS);
        p.setRowOrderPreserved(false);
        p.setPadding(0, 0, 0, 0);

        Spec row1 = spec(0);
        Spec row2 = spec(1);
        Spec row3 = spec(2, BASELINE);
        Spec row4 = spec(3, BASELINE);
        Spec row5 = spec(4, FILL);
        Spec row5 = spec(2, 3, FILL); // allow the last two rows to overlap the middle two
        Spec row6 = spec(5);
        Spec row7 = spec(6);

@@ -55,63 +57,63 @@ public class Activity2 extends Activity {
        Spec col4b = spec(3, FILL);

        {
            TextView v = new TextView(context);
            v.setTextSize(32);
            v.setText("Email setup");
            vg.addView(v, new LayoutParams(row1, col1a));
            TextView c = new TextView(context);
            c.setTextSize(32);
            c.setText("Email setup");
            p.addView(c, new LayoutParams(row1, col1a));
        }
        {
            TextView v = new TextView(context);
            v.setTextSize(16);
            v.setText("You can configure email in just a few steps:");
            vg.addView(v, new LayoutParams(row2, col1b));
            TextView c = new TextView(context);
            c.setTextSize(16);
            c.setText("You can configure email in just a few steps:");
            p.addView(c, new LayoutParams(row2, col1b));
        }
        {
            TextView v = new TextView(context);
            v.setText("Email address:");
            vg.addView(v, new LayoutParams(row3, col1c));
            TextView c = new TextView(context);
            c.setText("Email address:");
            p.addView(c, new LayoutParams(row3, col1c));
        }
        {
            EditText v = new EditText(context);
            v.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
            EditText c = new EditText(context);
            c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
            {
                LayoutParams lp = new LayoutParams(row3, col2);
                lp.width = (int) v.getPaint().measureText("Frederick.W.Flintstone");
                vg.addView(v, lp);
                lp.width = (int) c.getPaint().measureText("Frederick.W.Flintstone");
                p.addView(c, lp);
            }
        }
        {
            TextView v = new TextView(context);
            v.setText("Password:");
            vg.addView(v, new LayoutParams(row4, col1c));
            TextView c = new TextView(context);
            c.setText("Password:");
            p.addView(c, new LayoutParams(row4, col1c));
        }
        {
            TextView v = new EditText(context);
            v.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
            TextView c = new EditText(context);
            c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
            {
                LayoutParams lp = new LayoutParams(row4, col2);
                lp.width = (int) v.getPaint().measureText("************");
                vg.addView(v, lp);
                lp.width = (int) c.getPaint().measureText("************");
                p.addView(c, lp);
            }
        }
        {
            Space v = new Space(context);
            Space c = new Space(context);
            LayoutParams lp = new LayoutParams(row5, col3);
            lp.setMargins(0, 0, 0, 0);
            vg.addView(v, lp);
            p.addView(c, lp);
        }
        {
            Button v = new Button(context);
            v.setText("Manual setup");
            vg.addView(v, new LayoutParams(row6, col4a));
            Button c = new Button(context);
            c.setText("Manual setup");
            p.addView(c, new LayoutParams(row6, col4a));
        }
        {
            Button v = new Button(context);
            v.setText("Next");
            vg.addView(v, new LayoutParams(row7, col4b));
            Button c = new Button(context);
            c.setText("Next");
            p.addView(c, new LayoutParams(row7, col4b));
        }

        return vg;
        return p;
    }

    protected void onCreate(Bundle savedInstanceState) {