Как заблокировать экран, чтобы не допустить поворота на одном фрагменте - PullRequest
1 голос
/ 15 апреля 2019

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

override fun onPageSelected(position: Int) {
    val item = getDataItem(position)   
    if (item is SpecialItem) {

        if (context?.resources?.configuration?.orientation == Configuration.ORIENTATION_PORTRAIT) {
            activity?.requestedOrientation = ActivityInfo.ORIENTATION_PORTRAIT

            // or tried activity?.requestedOrientation = ActivityInfo.ORIENTATION_PORTRAIT

           // or tried activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LOCKED

        }


    } else {
        activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR
    } 
......
}

Но после вызова

activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE

он все еще может вращать экран.

Как правильно заблокировать экран здесь?

В чем разница между

activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR

и

activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR

и

activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_FULL_USER

Обновление

Спасибо за замечание JensV, что это была опечатка, и она должна быть ORIENTATION_PORTRAIT там, и этоработает.

Теперь вопрос только в чем разница, и стоит ли его использовать

activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LOCKED

или

activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT

// or activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT

1 Ответ

2 голосов
/ 15 апреля 2019

Отправка в качестве ответа, когда я решил вашу проблему.

Корневая проблема заключалась в том, что вместо SCREEN_ORIENTATION_PORTRAIT

использовался SCREEN_ORIENTATION_LANDSCAPE Ответ на ваш второй вопрос: я быперейдите с SCREEN_ORIENTATION_UNSPECIFIED, который вернется к отсутствию каких-либо конкретных настроек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...