2014-08-19 2 views
6

Я работаю над приложением для Android и iOS, что требует определенной гибкости для одного или двух видов. Вот почему мы создали &, реализовали сервис, который перевел базовый список объектов в пользовательский интерфейс для iOS & Android. Но теперь, когда Xamarin.Forms выпущен, мы решили заменить нашу услугу тем, что предоставляет Xamarin. Мне удалось создать представления с помощью Xamarin.Forms, в результате получилось более плавное управление страницами &. Но моя проблема заключается в ее навигации. Вот немного рисунка на то, что я хотел бы достичь:Пользовательская навигация с Xamarin.Forms

enter image description here

Я хотел бы мое приложение, чтобы начать деятельность, которая начинается с пользовательским фрагментом. После нажатия кнопки на этом фрагменте я хотел бы, чтобы страница, которую я создал с помощью Xamarin.Forms api, была добавлена ​​в мой текущий стек навигации! После того, как пользователь закончил работу с страницей Xamarin.Forms, он перейдет к второму пользовательскому фрагменту, который не нарушает навигационный цикл. Кто-нибудь знает, как я могу это достичь?

Для IOS developpers: заменить активность с NavigationController & Фрагмент с ViewController

ответ

2

Взгляните на CarouselPage для собственного подхода Xamarin.Forms. Не похоже, что это то, что вам нужно, но вы также можете посмотреть на его исходный код и, возможно, сделать собственный рендеринг самостоятельно.

Вы также можете взглянуть на MVVM

Что касается упрощения/дилетантский, как вы хотели бы сделать кнопку на каждой странице, и когда кнопка сливают выполнить Navigation.PushModalAsync(nextPage) - не будет кнопку «< Назад», вам может потребоваться реализовать это самостоятельно, если вам это нужно.

+0

Thx за то, что нашли время, чтобы ответить. На самом деле у меня есть решение для iOS, потому что, как вы инициализируете страницу в iOS, она возвращает UIViewModel, который я могу добавить в свой навигационный контроллер. (App.GetMainPage(). CreateViewController();) Мне было интересно, есть ли что-то подобное в android, которое возвращает фрагмент/активность, с которой я могу начать работать. – Chris

+0

@Chris делает решения для платформы, когда есть кросс-платформенные? Я не понимаю логики –

+0

Поскольку использование MvvMCross по-прежнему заставляет вас создавать пользовательский интерфейс и подключать привязки вручную. Xamarin.Form нет. Мы по-прежнему хотим иметь возможность разрабатывать сложные пользовательские интерфейсы для каждой платформы отдельно, но одно или два представления требуют определенной гибкости, которые должны совместно использоваться обеими платформами (поэтому, если когда-либо происходит изменение страницы, я могу сделать это для оба в то же время с небольшим усилием). Большинство наших данных хорошо разделены, поэтому я не вижу преимуществ потери недель, потому что мне нужно переписать его в mvvmcross (который также плохо документирован). – Chris

2

Если ваш смысл «текущего стека навигации» для использования родного навигации каждой платформы, то помните, что вы не должны использовать Xamarin.Forms 'модели навигация и функции таких как PushAsync.

Если вы предпочитаете делать Навигация с кодом, специфичным для каждой платформы, тогда вы можете сделать это как обычно. Просто создать свой заглушки страниц в каждой платформы конкретного проекта и установить Xamarin.Forms содержание для каждой страницы из совместного проекта.

С каждой платформы конкретнойзаглушкой страницы (активностью/UIView/PhoneApplicationPage) вы могли бы выполнить Action <> Настройка параметров вызова на совместноXamarin.Forms страницы, чтобы помочь с навигацией или, альтернативно, зацепить в пользовательское событие, которое поднято из Xamarin.Forms ** страница назад к конкретной платформеstub страница, позволяющая вам осуществлять навигацию оттуда.

Sten упоминается, что кнопки «Назад» не будет, поэтому вам, скорее всего, придется это сделать самостоятельно.

+0

Спасибо, я попробую и дам вам знать, как это получилось :) – Chris

Смежные вопросы