Pages, layouts, and views make up the core of the Xamarin.Forms UI. Pages are the primary container, and each screen is populated by a single Page class. A page may contain variations of the Layout class, which may then hold other layouts, used for placing and sizing their contents. The purpose of pages and layouts is to contain and present views, which are controls inherited from class View
.
Page
The Page
class is the primary container of each main screen in the app. Derived from Xamarin.Forms.VisualElement
, Page
is a base class for the creation of other top-level UI classes. Here are the primary pages: ContentPage, MasterDetailPage , NavigationPage, TabbedPage, CarouselPage
. In addition to serving as containers for layouts and views, pages provide a rich menu of prefabricated screens with useful functionality that includes navigation and gesture responsiveness.
Layout
Views are placed and sized by their container class, Layout
. Layouts come in a variety of flavors with different features for formatting their views. These containers allow views to be formatted precisely, loosely, absolute to the coordinate system, or relative to one another. Layouts are the soft tissue of the page, the cartilage that holds together the solid, visible aspects of the page(views). Here are the main layouts: StackLayout, AbsoluteLayout, RelativeLayout, Grid, ScrollView, Frame, ContentView
.
The layout’s Content
and/or Children
properties contain other layouts and views. Horizontal and vertical alignment is set by the properties HorizontalOptions
and VerticalOptions
. Rows, columns, and cells within a layout can be padded with space, sized to expand to fill available space, or shrunk to fit their content. More on layouts in the next chapter. Xamarin.Forms layouts are derived from the View
class, so everything contained by a page is actually some form of a view.
View
Views are controls, the visible and interactive elements on a page. These range from the basic views like buttons, labels, and text boxes to the more advanced views like lists and navigation. Views contain properties that determine their content, font, color, and alignment. Horizontal and vertical alignment is set by properties HorizontalOptions
and VerticalOptions
. Like layouts, views can be padded with space, sized to expand to fill available space, or shrunk to fit their content. Later in this chapter, we’ll code some views, then visit them again in Chapter 4 and throughout the book. These are the primary views grouped by function:
- Basic – fundamental views:
Label, Image, Button, BoxView
- List – make a scrollable, selectable list:
ListView
- Text Entry – user entry of text strings using a keyboard:
Entry, Editor
- Selection – user choice of a wide range of fields:
Picker, DatePicker, TimePicker, Stepper, Slider, Switch
- User Feedback – notify the user of app processing status:
ActivityIndicator, ProgressBar
Be careful not to confuse the Xamarin.Forms View class with a view meaning screen or presentation layer. Also, iOS refers to screens as views.
I devote an entire chapter dedicated to Pages, another to Layouts, and another to Views in my book, Xamarin Mobile Application Development. Whether you read my book or check out the Xamarin online docs and Xamarin MVP blogs, educating yourself is how to make Pages and Layouts and Views less scary and working hard for you in your own apps.
Get started with the free C# and XAML book examples on GitHub.
Dig into the Xamarin.Forms toolkit and own it.