Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中更改屏幕方向而不重新加载活动_Android_Screen Orientation - Fatal编程技术网

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

在Android中更改屏幕方向而不重新加载活动,android,screen-orientation,Android,Screen Orientation,我想在运行Android应用程序时通过以下代码行以编程方式更改方向: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 到目前为止,它们还可以工作,但主要问题是,当屏幕方向改变时,整个活动都会重新加载,我不希望这样。可能吗?谢谢 编辑:好的,等我找到我缺少的东

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

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
到目前为止,它们还可以工作,但主要问题是,当屏幕方向改变时,整个活动都会重新加载,我不希望这样。可能吗?谢谢

编辑:好的,等我找到我缺少的东西后。我还必须在configChanges属性中包含“屏幕大小”,因此

android:configChanges="orientation|screenSize"

解决了整个问题。

您需要覆盖onSaveInstanceState(Bundle savedInstanceState)并将要更改的应用程序状态值写入AndroidManifest文件add
android:configChanges=“orientation”
中的Bundle参数

在活动中使用OnConfiguration更改重写方法。您是否希望在方向更改中处理任务。

此处回答:

加:

android:configChanges=“orientation”

给你的androidmanifest

见:


请参见@luisfer的编辑。针对安卓3.2及以上版本,您需要两者

android:configChanges="orientation|screenSize"

调用此方法并设置清单文件

android:configChanges="orientation|screenSize|keyboardHidden"

public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);

        // Checks the orientation of the screen
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
        }
    }

我想你应该看看这个答案中的第三个选项。我相信这就是PhoneGap处理方向变化的方式。你可以旋转你的活动/片段视图。检查这个:谢谢,但它仍然不起作用。可能是因为我在活动中使用了Phonegap/HTML5吗?谢谢,谢谢,但还是不行。可能是因为我在活动中使用了Phonegap/HTML5吗?谢谢。@Rajsah需要更多的代码吗?你看过问题了吗?标题如何?+1,这是正确的答案=>他所问的是不可能的,只要有这个解决方案,他就可以做他想做的事情,只有使用13以上的API android:configChanges=“orientation | screenSize”这也改变了我在导航堆栈方面的所有问题。谢谢你,伙计