Flex Container Pseudocode Examples
Below are some of the Pseudocode examples and their images:
Building a grid of widgets
//Sample code to build a grid of widgets. var c = new kony.ui.FlexContainer(); c.setDefaultUnit(dp); c.width = 170; c.height = 170; wWidth = 30; wHeight = 20; wSpacing = 20; for (int I = 0; I < 3; I++ ) { for (int J = 0; J < 3 ; J++) { var label = new Label(“id”, “Label”); label.width = wWidth; label.height = wHeight; label.top = (I + 1)* spacing + I* wHeight; label.left = (J + 1)* spacing + J * wWidth; c.add(label); } }
Position the widgets diagonally
//Sample code to position the widgets diagonally. var c = new kony.ui.FlexContainer(); c.setDefaultUnit(dp); var label1 = new Label(“id”,“Label1”) c.add(label1); var label2 = new Label(“id”,“Label2”) c.add(label2); var label3 = new Label(“id”, “Label3”) c.add(label3); c.doLayout = function() { wWidth = 30; wHeight = 20; wSpacing = 20; label1.width = label2.width = label3.width = wWidth; label1.height = label2.height = label3.height = wHeight; label1.right = 20; label1.top = 20; label2.left = c.frame.width/2 - wWidth/2; label2.top = c.frame.height/2 - wHeight/2; label3.left = 20; label3.bottom = 20; }
Position the widgets relative to siblings
//Sample code to position the widgets relative to siblings var c = new kony.ui.FlexContainer(); var label1 = new Label(“Hi”); c.add(label1); var label2 = new Label(“Hi”); c.add(label2); label1.left = 20; label1.top = 30; label1.width = kony.flex.USE_PREFERRED_SIZE; label1.height = 40; label1.doLayout = function(){ var lab = this.parent.label2; // accessing the child’s through parent lab.left = 20 + label1.frame.width /2; lab.left.top = 30; label2.width = label1.frame.width /2; label2. height = 40; }
Overlapping the widgets using zIndex
//Sample code to overlap the widgets using zIndex var label1 = new Label("id", "Label1"); label1.zIndex = 1; c.add(label1); var label2 = new Label("id", "Label2") label1.zIndex = 2; c.add(label2); label1.left = 20; label1.top = 30; label1.width = 60; label1. height = 50; label1.doLayout = function(){ label2.left = 20 + label1.frame.width /2; label2.top = 30 + label1.frame.height/2; label2.width = 80; label2. height = 25; }
Positioning the widgets horizontally
//Sample code to position the widgets horizontally var c = new kony.ui.FlexContainer(); //set the container layout type as Kony.Flex.FLOW_HORIZONTAL var label1 = new Label("id", "Hi"); c.add(label1); var label2 = new Label("id", "Kony’s Flex Layout"); c.add(label2); var label3 = new Label("id", "Can it scale ?"); c.add(label3); label1.top = label2.top = 20; label3.top = 30; label1.left = label2.left = label3.left = 5; label1.width = label2.width = label3.width = kony.flex.USE_PREFERRED_SIZE; label1.height = label2.height = label3.height = 50;
Stacking the widgets vertically
//Sample code to stack the widgets vertically var c = new kony.ui.FlexContainer(); //set the container layout type as Kony.Flex.FLOW_VERTICAL var label1 = new Label(“id”, “Hi Kony’s new layout but set in stack mode”); c.add(label1); var label2 = new Label(“id”, “Hi”); c.add(label2); var label3 = new Label(“id”, “Sample”); c.add(label2); label1.left = label2.left = 30; label3.left = 40; label1.top = label2.top = label3.top = 5; label1.width = label2.width = label3.width = 60; label1.height = label2.height = label3.height = kony.flex.USE_PREFERRED_SIZE;
Wrapping the text when it reaches the specified width
//Sample code to wrap the text when it reaches the specified width var c = new kony.ui.FlexContainer(); var label1 = new Label("id", "text"); c.add(label1); label1.text = // Data is fed from net work label1.left = 20; label1.top = 20; label1.maxWidth = 80; label1.height = kony.flex.USE_PREFERRED_SIZE;
Wrapping the text when it reaches the parent boundaries
//Sample code to wrap the text when it reaches the parent boundaries var c = new kony.ui.FlexContainer(); var label1 = new Label(“id”, “text”); c.add(label1); label1.text = // Data is fed from net work c.doLayout = function() { label1.left = 20; label1.top = 20; label1.maxWidth = c.frame.width - 20 ; label1.height = kony.fLex.USE_PREFERRED_SIZE; }
Widget occupying the available horizontal space
//Sample code of widget occupying the available horizontal space var c = new kony.ui.FlexContainer(); var label1 = new Label("id", "text"); c.add(label1); label1.text = // Data is fed from net work label1.left = 20; label1.top = 20; label1.right = 0; label1.height = kony.flex.USE_PREFERRED_SIZE;
Widget occupying the available vertical space
//Sample code of widget occupying the available vertical space var c = new kony.ui.FlexContainer(); var label1 = new Label("id", "Hi"); c.add(label1); var label2 = new Label("id", "Hi"); c.add(label2); label1.left = 20; label1.top = 20; label2.right = 30; label2.top = 50; label1.bottom = 0; label1.width = 50;
Widget to occupy its preferred size without any given height or width
//Sample code of a widget to occupy its preferred size without any given height or width var c = new kony.ui.FlexContainer(); c.clipBounds = false; var label1 = new Label(“id”, “text”); c.add(label1); label1.text = // Data is fed from net work label1.left = 20; label1.top = 20;
Widget position in center and offset from left and right boundaries
/*Sample code of widget position in center with width to grow maximum and with a minimum offset from left and right boundaries.*/ var c = new kony.ui.FlexContainer(); var label1 = new Label("id", "text"); c.add(label1); label1.text = // Data is fed from net work label1.minWidth = 20; label1.maxWidth = 80; label1.height = kony.flex.USE_PREFERRED_SIZE; label1.center = {80,80};