有一个寻呼机片段,当一个片段滚动时,它希望它在纵向模式下锁定,其他人应该允许旋转。
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
当我解决你的问题时,张贴作为答案。
根本问题是使用SCREEN_ORIENTATION_LANDSCAPE
而不是SCREEN_ORIENTATION_PORTRAIT
第二个问题的答案:我会选择SCREEN_ORIENTATION_UNSPECIFIED
,它会重置为没有具体设置。