2015-11-01 5 views
-2

Im создает мобильное приложение для аудита сначала для Android и также будет на iOS в будущем.Xamarin Forms Layout

Какой лучший подход при использовании Xamarin.Forms для создания динамической формы вопроса/ответа. Я хочу контролировать это из шаблона, хранящегося на сервере, поэтому я могу легко добавлять/удалять вопросы.

У каждого предмета будет вопрос, ответ (это может быть текст, да/нет, выбор даты и т. Д.), У вас будет возможность добавить комментарий к вопросу, а также загрузить несколько изображений на вопрос.

Каков наилучший способ:

1, Рендер элементы управления на макете с помощью кода позади или XAML 2, что бы использовать, чтобы заложить их из 3, когда пользователь (стек панели?) представляет форму, как бы вы получить значения из элементов управления

Wireframe of the example Form

+0

. Пожалуйста, прочтите и исправьте свой вопрос: http://stackoverflow.com/tour – Wosi

+1

Вопрос 1 слишком расплывчатый. На какие объекты вы ссылаетесь? Вопрос 2 - Да, используйте StackLayout. Вопрос 3 также слишком расплывчатый. Что вы понимаете под «получить данные»? Какие данные? –

ответ

0

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

Если цель состоит в том, чтобы иметь набор полей, которые составлены во время выполнения (в отличие от предопределенного макета), ваш самый простой путь заключается в том, чтобы скомпоновать его с помощью codebehind.

StackLayout - это простая линейная компоновка и хорошо подходит для большинства приложений ввода данных. Общая схема, которую я бы рекомендовал, - это «Ярлык/ввод данных», повторите по мере необходимости.

Существует несколько способов вернуть данные из элементов управления, но самым простым способом было бы поддерживать дерево, которое отображает ваши поля данных в элементы пользовательского интерфейса и вводит/извлекает данные с использованием этого дерева.

Теперь есть способы динамически составлять XAML, а также использовать MVVM динамически (см. Daniel Cazzulino's post, что действительно классно!), Но для простого приложения, которое может быть сложнее, чем вам нужно.