При наличии фрагмента пейджера и при прокрутке одного фрагмента требуется, чтобы он был заблокирован в портретном режиме, а другим следует разрешить поворот.
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