Android 横屏设置, 为什么会先显示一会竖屏?

Actiivty 横屏设置, 为什么会先显示一会竖屏?

    var TAG = "Test"

    override fun onCreate(savedInstanceState: Bundle?) {
        setOrientation()
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d(TAG, "onCreate")
    }

    private fun setOrientation() {
        //隐藏标题
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //设置全屏
        window.setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
        )
        requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
    }

为什么会先出来一会的竖屏, 才会横屏显示 ?

但是在 AndroidManifest.xml 中设置
``` android:configChanges="orientation|keyboardHidden|navigation"
android:screenOrientation="landscape"/>

就能正常横屏显示....

关闭手机里面的自动旋转!

在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)

原因很简单:
配置文件写死不会出现问题,是因为当系统跳转时预先读取配置文件,发现你是横屏当然直接横屏了
代码会出现切换的问题,系统当然无法预读取你的代码了,只有执行到的时候才会进行切换,在onCreat之前不是有间隔吗,这段间隔系统当然是默认什么样就什么样了。
可以参考微信也会有这种情况,如果只是横屏应用建议在配置里写死

您好,您的问题解决了吗
我也遇到了相同的问题,不在配置文件中定死方向的话,代码中动态设置横屏,会先竖屏再横屏
但是我不能再配置文件中定死,如果我需要的是竖屏,那就会出现先横再竖的情况

xml配置文件中设置android:screenOrientation="nosensor",关闭重力感应就好了。