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",关闭重力感应就好了。