На Android приложение возвращается к странице по умолчанию при изменении ориентации

Я протестировал свое приложение Xamarin.Forms на iOS и Android и обнаружил следующую разницу при изменении ориентации мобильного устройства:

  • На iOS приложение сохраняет текущую страницу
  • На Android приложение перезагружается со страницы по умолчанию (или, возможно, открывает все страницы, кроме первой).

Поскольку я никогда не видел такого поведения в другом приложении для Android, я хотел бы отключить его. Более того, я не думаю, что это поведение по умолчанию для Android.

Какое свойство мне нужно, чтобы настроить целевое устройство Android в качестве целевого устройства iOS?


person SteAp    schedule 09.06.2014    source источник
comment
Я полагаю, что на форумах Xamarin об этом была тема, но я не знаю, было ли решение. Поскольку формы, похоже, привязаны к одному действию, я бы начал с просмотра, можете ли вы сохранить тип/информацию страницы в пакет и восстановить состояние при восстановлении. К сожалению, в настоящее время классы форм не сериализуемы. Быстрое и грязное исправление состояло бы в том, чтобы поддерживать только одну ориентацию, но это не очень хорошее долгосрочное решение. В целом я не думаю, что Xamarin Forms достаточно зрелый, чтобы заменить полностью собственные контроллеры представления.   -  person SKall    schedule 09.06.2014


Ответы (1)


Вы проверили ActivityAttribute своей MainActivity? он должен указывать ConfigChanges.Orientation.

что-то вроде этого

using Android.Content.PM;

[Activity(Label = "%Your app name%", MainLauncher = true, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize)]

Если ConfigChanges.Orientation не установлен, ОС будет воссоздавать активность при изменении ориентации. И если он установлен, это означает, что вы сами справитесь со сменой ориентации.

person ad1Dima    schedule 10.06.2014