2016-05-02 2 views
0

Я унаследовал обслуживание и разработку над приложением, которое было , изначально написанное без Xamarin.Forms, делая слой пользовательского интерфейса для Android и iOS традиционным способом с конкретной платформой проектов и совместного проекта для моей бизнес-логики.Использование Xamarin.Forms в оригинальном проекте, отличном от Xamarin.Forms

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

Мне было интересно, удалось ли заменить определенные экраны на Xamarin.Forms, возможно, разместив их вручную внутри определенной активности Android или экрана iOS.

Я хотел бы начать с интеграции следующего экрана функции как общей страницы «Xamarin.Forms».

Неужели кто-нибудь когда-либо делал что-либо подобное раньше?

+0

Интересный вопрос. Недавно я сделал обратное, воссоздал все простые экраны приложения, отличного от форм, в формах, и добавил более сложные в качестве настраиваемых рендерингов. Это вариант для вас? –

+0

В настоящий момент общий рефакторинг не является вариантом, однако реверсирование выполняется. Вот почему я хотел бы реализовать простые новые дополнения в XF вместо native. Мы говорим о простейшем виде listview-with-a-searchbox-and-button. Экран действительно не взаимодействует друг с другом каким-либо сложным образом. – bpylearner

ответ

1

Мы сделали это из-за редизайна приложения. Мы разработали приложение с MvvmCross и собственным пользовательским интерфейсом и перешли на Xamarin.Forms. Мы выбросили все виды, но сохранили ViewModels. Это означает: если уровень пользовательского интерфейса отделен от вашего уровня ViewModel (с использованием привязки данных), его должно быть легко полностью переключиться.

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

Для смешивания там два минималистский примера:

+0

К сожалению, приложение находится далеко от правильной реализации MVC/MVVM, поскольку код спагетти может его взять. В моем случае основное приложение - это всего лишь хаб, который вызывает другие действия, которые практически не взаимодействуют с остальной частью приложения. И абсолютно ни один из них не является сложным, поэтому XF станет главным кандидатом. – bpylearner

+0

Затем ознакомьтесь с приведенными примерами. Если ваши Страницы действительно независимы, тогда это может сработать. –

+0

Я уже на нем. Спасибо за образцы. – bpylearner

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