Меню
Разработки
Разработки  /  Информатика  /  Практикумы  /  Прочее  /  Разработка мобильных приложений на платформе Xamarin

Разработка мобильных приложений на платформе Xamarin

Описано поэтапно создание мобильного приложения на платформе Xamarin в пакете Visual Studio 2015.

01.03.2017

Содержимое разработки

РАЗРАБОТКА МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА ПЛАТФОРМЕ XAMARIN


В Xamarin.Forms визуальный интерфейс состоит из страниц. Страница представляет собой объект класса Page, она занимает все пространство экрана. То есть то, что мы видим на экране мобильного устройства - это страница. Приложение может иметь одну или несколько страниц.

Страница в качестве содержимого принимает один из объектов компоновки, который в свою очередь содержит стандартные визуальные элементы типа кнопок и текстовых полей, а также другие элементы компоновки.

Возьмем созданный в прошлой теме проект HelloApp. По умолчанию весь интерфейс создается в классе App, который представляет текущее приложение:


Но данный путь не единственный. Xamarin.Forms позволяет создавать визуальный интерфейс как с помощью кода C#, так и декларативным путем с помощью языка xaml, аналогично html.

Создние интерфейса из кода C#

Добавим в проект HelloApp новый класс, который назовем MainPage. И определим в нем следующее содержимое:


Данный класс представляет страницу, поэтому наследуется от класса ContentPage. В конструкторе создается метка с текстом, которая задается в качестве содержимого страницы (this.Content = header).


Чтобы обозначить MainPage в качестве стартовой страницы, изменим класс App:


Также стоит отметить, что в Visual Studio есть готовый шаблон для добавления новых классов страниц с простейшим кодом. Так, чтобы добавить новую страницу, надо при добавлении нового элемента выбрать шаблон Forms Content Page:


Данный класс добавляется в главный проект решения (в данном случае это HelloApp (Portable)).

Добавленный класс страницы будет иметь следующий код:


Этот класс также будет наследоваться от базового класса ContentPage и будет иметь практически ту же самую организацию, что и выше созданный класс MainPage.

И также в классе приложения мы можем установить эту страницу в качестве стартовой:


Хотя мы можем создавать весь интерфейс и в коде C#, но более предпочтительным способом является его описание в XAML. XAML представляет язык разметки на основе xml для создания объектов декларативным образом.

В прошлой теме мы рассмотрели создание класса страницы, которая представляет графический интерфейс, и собственно можем вообще обойтись без кода XAML. Однако использование XAML все-таки несет некоторые преимущества.

Во-первых, с помощью XAML мы можем отделить графический интерфейс от логики приложения, благодаря чему над разными частями приложения могут относительно автономно работать разные специалисты: над интерфейсом - дизайнеры, над кодом логики - программисты.

Во-вторых, XAML позволяет описать интерфейс более ясным и понятным способом, такой код гораздо проще поддерживать и обновлять.

XAML позволяет организовать весь пользовательский интерфейс в виде набора страниц подобно тому, как это делается в HTML. Для добавления новой страницы с кодом xaml в проект, необходимо выбрать тип элемента "Forms Xaml Page":


В результате Visual Studio добавит в проект два файла - StartPage.xaml и файл связанного кода StartPage.xaml.cs:

StartPage.xaml будет содержать разметку визуального интерфейса новой страницы:


Запуск страницы

Чтобы определить эту страницу в качестве стартовой, перейдем в проекте в файл App.cs и изменим класс App следующим образом:



Теперь в качестве главной страницы задается определяется объект класса StartPage. И если мы запустим проект, то увидим эту страницу на тестируемом устройстве.

Структура файла XAML

Файл с разметкой на xaml представляет собой обычный файл xml, и первой строкой идет стандартное определение xml-файла. Далее здесь определен элемент ContentPage, внутри которого определена метка с текстом.

В определении корневого элемента ContentPage подключаются два пространства имен с помощью атрибутов xmlns.

Пространство имен http://xamarin.com/schemas/2014/forms определяет большинство типов из Xamarin Forms, которые применяются для построения графического интерфейса.

Второе пространство имен http://schemas.microsoft.com/winfx/2009/xaml определяет ряд типов XAML и типы CLR. Так как только одно пространство имен может быть базовым, то это пространство используется с префиксом (или проекцируется на префикс) x: xmlns:x. Это значит, что те свойства элементов, которые заключены в этом пространстве имен, будут использоваться с префиксом x - x:Name или x:Class

После подключения пространств имен идет атрибут x:Class="HelloApp.StartPage, который указывает на класс, представляющий данную страницу.

Далее внутри ContentPage определены непосредственно элементы, которые и будут представлять графический интерфейс.

Элементы и их свойства

XAML предлагает очень простую и ясную схему определения различных элементов и их свойств. Каждый элемент, как и любой элемент XML, должен иметь открытый и закрытый тег, как в случае с элементом ContentPage:

Либо элемент может иметь сокращенню форму с закрывающим слешем в конце, наподобие:

Каждый элемент в XAML представляет объект определнного класса C#, а атрибуты элементов соотносятся со свойствами этих классом. Например, элемент ContentPage фактически будет представлять объект одноименного класса ContentPage, а элемент Label - объект класса Label.

Каждый элемент в xaml можно сопоставить определенному классу в C#, а каждый атрибут элемента - свойству этого класса. Однако если свойства классов могут принимать значения различных типов: string, double, int и т.д. То в XAML атрибуты элементов имеют текстовые значения:

Свойство Text класса Label в качестве значение принимает строку, поэтому здесь никаких преобразований не потребуется. Но, к примеру, свойство VerticalOptions в качестве значения принимает одну из констант перечисления LayoutOptions, например, LayoutOptions.Center. Однако в коде XAML мы присваиваем просто значение Center. Дело в том, что в Xamarin Forms действуют конвертеры типов, которые позволяют преобразовать от одного типа к другому.

Кроме простых свойств, которые могут устанавливаться в с помощью простой строки, например, , в XAML могут применяться сложные или комплексные свойства. В таких случаях свойство класса может принимать в качестве значения какой-нибудь сложный объект, который в свою очередь имеет некоторый набор свойств. Сложные свойства определяются в формате:

Например, у класса Label есть свойство Style, которое в качестве значения принимает сложный объект одноименного класса Style:



Элемент Style устанавливает стилевые свойства метки через вложенные элементы Setter.

Также простые свойства можно представить в виде сложных, например, вместо VerticalOptions="Center" написать:

Center

Также в xaml применяются прикрепляемые свойства (attached properties). Например:

Здесь определен контейнер Grid, который создает табличное представление. С помощью сложного свойства Grid.RowDefinitions определяется набор строк грида.

В элементе Label применяется прикрепляемое свойство Grid.Row, которое определено в классе Grid, но используется или прикрепляется к объекту Label. В данном случае свойство указывает, что метка будет находиться во второй строке (отсчет строк начинается с нуля).



-80%
Курсы дополнительного образования

Создание динамических веб-страниц с помощью PHP и MySQL

Продолжительность 72 часа
Документ: Cвидетельство о прохождении курса
4000 руб.
800 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Разработка мобильных приложений на платформе Xamarin (1.22 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт