React is an easy to use framework for building front end apps.
NativeScript is a mobile app framework that lets us build native mobile apps with popular front end frameworks.
In this article, we’ll look at how to build an app with NativeScript React.
Grid Layout with Mixed Sizing and Merged Cells
We can merge cells with the colSpan
and rowSpan
props.
For example, we can write:
import * as React from "react";
export default function Greeting({ }) {
return (
<gridLayout
columns="40, auto, *"
rows="40, auto, *"
backgroundColor="#3c495e"
>
<label text="0,0" row={0} col={0} backgroundColor="red" />
<label text="0,1" row={0} col={1} colSpan={2} backgroundColor="green" />
<label text="1,0" row={1} col={0} rowSpan={2} backgroundColor="blue" />
<label text="1,1" row={1} col={1} backgroundColor="yellow" />
<label text="1,2" row={1} col={2} backgroundColor="purple" />
<label text="2,1" row={2} col={1} backgroundColor="orange" />
<label text="2,2" row={2} col={2} backgroundColor="white" />
</gridLayout>
);
}
We set the colSpan
prop to make the label
span 2 columns.
And we set the rowSpan
to make the label
span 2 rows.
StackLayout
The stackLayout
component lets us add items that are stacked one on top of another.
For instance, we can write:
import * as React from "react";
export default function Greeting({ }) {
return (
<stackLayout backgroundColor="#3c495e">
<label text="first" height={70} backgroundColor="red" />
<label text="second" height={70} backgroundColor="green" />
<label text="third" height={70} backgroundColor="blue" />
</stackLayout>
);
}
We put the label
s in the stackLayout
so that they’re stacked on top of each other.
Horizontal Stacking
We can set the orientation
to 'horizontal'
so that we make the items display side by side.
To do this, we write:
import * as React from "react";
export default function Greeting({ }) {
return (
<stackLayout orientation="horizontal" backgroundColor="#3c495e">
<label text="first" height={70} backgroundColor="red" />
<label text="second" height={70} backgroundColor="green" />
<label text="third" height={70} backgroundColor="blue" />
</stackLayout>
);
}
to do this.
Stack Layout with Horizontally Aligned Children
Child components can be horizontally aligned.
For instance, we can write:
import * as React from "react";
export default function Greeting({ }) {
return (
<stackLayout backgroundColor="#3c495e">
<label
text="left"
horizontalAlignment="left"
width={33}
height={70}
backgroundColor="red"
/>
<label
text="center"
horizontalAlignment="center"
width={33}
height={70}
backgroundColor="green"
/>
<label
text="right"
horizontalAlignment="right"
width={33}
height={70}
backgroundColor="blue"
/>
<label
text="stretch"
horizontalAlignment="stretch"
height={70}
backgroundColor="yellow"
/>
</stackLayout>
);
}
We set the horizontalAlignment
prop to align them label
to where we want them.
Setting the prop to 'stretch'
makes it span the whole width of the screen.
Horizontal Stack Layout with Vertically Aligned Children
We can vertically align child items in the stackLayout
.
To do this, we write:
import * as React from "react";
export default function Greeting({ }) {
return (
<stackLayout orientation="horizontal" backgroundColor="#3c495e">
<label
text="top"
verticalAlignment="top"
width={70}
height={33}
backgroundColor="red"
/>
<label
text="middle"
verticalAlignment="middle"
width={70}
height={33}
backgroundColor="green"
/>
<label
text="bottom"
verticalAlignment="bottom"
width={70}
height={33}
backgroundColor="blue"
/>
<label
text="stretch"
verticalAlignment="stretch"
width={70}
backgroundColor="yellow" />
</stackLayout>
);
}
to set the orientation
to 'horizontal'
to make the label
s align vertically.
verticalAlignment
is set to align the item to the position we want.
When it’s set to 'stretch'
, it’ll span the whole height of the screen.
Conclusion
We can add a grid and stack layout into our mobile app with React NativeScript.