在Android中更改屏幕方向而不重新加载活动

lui*_*fer 31 android screen-orientation

我想在运行我的Android应用程序时以编程方式更改方向,使用以下代码行:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
Run Code Online (Sandbox Code Playgroud)

它们到目前为止工作,但主要问题是当屏幕方向改变时重新加载整个活动,我不希望这样.可能吗?谢谢.

编辑:好的,在我找到我失踪的东西之后.我必须在configChanges属性中包含"screenSize",所以有

android:configChanges="orientation|screenSize"
Run Code Online (Sandbox Code Playgroud)

解决了整件事.

lar*_*am1 28

请参阅@luisfer的编辑.对于Android 3.2及更高版本的定位,您需要同时使用

android:configChanges="orientation|screenSize"
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange


Mar*_*tin 4

您需要重写 onSaveInstanceState(Bundle savingInstanceState) 并将要更改的应用程序状态值写入 Bundle 参数