Xamarin Forms-Определите, заблокировано ли устройство в портретном режиме

Я создал приложение Xamarin Forms. Пользователь переходит от представления A к представлению B. Требование к представлению B заключается в том, что он должен находиться в ландшафтном режиме только независимо от того, заблокирована ли ориентация устройства или нет. Я могу добиться этого, используя Пользовательский рендерер

   protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
    {
        base.OnElementChanged(e);
        ((MainActivity)Context).RequestedOrientation = ScreenOrientation.Landscape;
    }

Когда пользователь возвращается к представлению A, я хочу, чтобы представление повернулось в соответствующую ориентацию в зависимости от того, находится ли устройство в заблокированном портретном состоянии или в состоянии автоповорота. Как добиться такого поведения? Как проверить, заблокировано ли устройство в портретном режиме?


person Debasish    schedule 21.08.2018    source источник
comment
Что вы имеете в виду, говоря, что я хочу, чтобы вид поворачивался в соответствующую ориентацию в зависимости от того, находится ли устройство в заблокированном портретном состоянии или в состоянии автоповорота   -  person FreakyAli    schedule 21.08.2018
comment
Для iPad / планшетов?   -  person jamesfdearborn    schedule 21.08.2018
comment
@ G.hakim Если устройство заблокировано в портретном режиме, оно должно отображаться только в портретном режиме. Если устройство находится в режиме автоповорота, оно должно отображаться либо в альбомной, либо в портретной ориентации в зависимости от ориентации устройства. Это должно работать как для iOS, так и для Android.   -  person Debasish    schedule 21.08.2018
comment
@jamesfdearborn Телефоны и планшеты Android, а также iPhone и iPad.   -  person Debasish    schedule 21.08.2018
comment
Затем сделайте одну вещь, когда вы вернетесь на эту страницу, установите ориентацию экрана на пользователя.   -  person FreakyAli    schedule 21.08.2018
comment
@ G.hakim Да, мне удалось добиться желаемого результата в Android с помощью MainActivity.Instance.RequestedOrientation = ScreenOrientation.FullUser; Как это сделать в iOS? Пожалуйста, помогите   -  person Debasish    schedule 21.08.2018
comment
поставив его в качестве ответа через 5 минут, просто измените состояние в соответствии с вашими потребностями   -  person FreakyAli    schedule 21.08.2018


Ответы (1)


Если пользователь находится в режиме просмотра B и в портретном режиме, отобразите сообщение, информирующее его о необходимости использования ландшафтного режима.

Насколько мне известно, приложение, по крайней мере, в Xamarin, не может изменять ориентацию устройства пользователя для определенных страниц.

person jamesfdearborn    schedule 21.08.2018