如何锁定屏幕不允许旋转一个片段

问题描述 投票:1回答:1

有一个寻呼机片段,当一个片段滚动时,它希望它在纵向模式下锁定,其他人应该允许旋转。

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
android android-sensors screen-orientation
1个回答
2
投票

当我解决你的问题时,张贴作为答案。

根本问题是使用SCREEN_ORIENTATION_LANDSCAPE而不是SCREEN_ORIENTATION_PORTRAIT

第二个问题的答案:我会选择SCREEN_ORIENTATION_UNSPECIFIED,它会重置为没有具体设置。

© www.soinside.com 2019 - 2024. All rights reserved.