Many developers started to play with Google App Inventor to develop simple applications, instead of writing lots of code. But one of the biggest problems encountered is the fact that you can't have multiple screens. So in this tutorial, you are going to learn how to virtualize screens in a very simple, useful and easy way.
Before reading this tutorial, you need to have some experience using the Google App Inventor, if you have finished the HelloPurr you can proceed, but remember that App Inventor Blocks Editor uses Java language, so it will be nice if you already got some knowledge in Java.
The Design Part
As App Inventor is a lot visual, let's start by adding two
VerticalArrangement boxes like shown below. One called
vScreen1, that will simulate the main screen and the other called
vScreen2, that should emulate a secondary screen on your application:
So after you have done that, start putting some objects into both, for a test in this case, I've inserted a lot of stuff on both, and as you can see on the second one, I've inserted other alignment tools (works nice). After all, I got something like this:
Important: You should never forget to do this. On both
VerticalArrangement tools, you should put the
Height properties as
Fill Parent..., as shown below:
As you can see in the image, the values are from the second screen (
vScreen2) and its
Visible property is
false, that's because we don't want it to be shown with the main screen (
vScreen1) so when the application starts, it would be hidden.
That's all for the application design part, so let's dive into some code now...
Now let's go to the Blocks Editor to have some fun. Start by creating a new function for the button that will take the user for the second screen, on this tutorial, I'm using the function
btGo2.Click. After this turn, the
vScreen1 invisible, and then turn the
vScreen2 visible, so now you the user would be in the second screen. If you want to make it more real, change the title of the
Screen1 (the real application screen) to the title that you want for the new screen. Just like this:
But now the user is stuck on the second screen, as we added a Back button (
btBack) on the second screen, we can change this code a bit to make it go back to the first one:
The full code will look like this:
As you can see, it's very simple, but very useful. With this simple snippet, you can do multiple screens virtually. Don't forget that you can do this with infinity screens.