如何在Android上启用同一活动的旋转?

问题描述:

对不起,这个问题已经被问了大概几千次了,但是我没有找到正确的话怎么来问这个问题。如何在Android上启用同一活动的旋转?

我有一个在android的活动。当我以90度转动屏幕时,看起来当前的活动已完全被破坏,并且启动了一项新活动。那是对的吗?

但是,如果我已经在一个方向上显示了一些数据,我想在另一个方向显示完全相同的数据?有没有简单的方法来实现这一点?活动只是保持不变,但在另一个方向上显示来自SAME活动的SAME数据的布局?

+0

我认为你需要添加标记机器人:configChanges =“方向”,你定义了你的活动,则您的活动里面的manifest文件里面你需要重写onConfigurationChange方法然后...你需要定义你的逻辑你想在方向改变中显示 – dex

+0

你能提供一个例子吗?为什么我需要提供一个逻辑?它对于任何方向都是一样的逻辑... – Alex

+0

如果你想显示相同的方向,那么只需在Android清单文件中添加标志。 – dex

如果您的项目api级别高于Android 3.2(),则可以通过简单的方式节省时间API等级13)这段代码添加到您的活动清单:

android:configChanges="keyboardHidden|orientation" 

更新:这也可以帮助:

android:configChanges="keyboardHidden|orientation|screenSize" 
+0

我试过了,但它没有工作 – Alex

+0

它确实工作,我以错误的方式添加了代码。您没有提供完整的答案... – Alex

是的,只要一个活动改变了它的旋转,它就会被销毁并重新创建。和相同的android使用相同的布局,并粗略地显示为横向模式。

您可以制作一个新的文件夹布局文件夹名称layout-land。 layout-land可以包含与布局文件夹相同的布局,并且可以根据横向方向要求对视图进行tweeked

+0

我想有相同的布局在任何方位,... – Alex

+0

你不希望系统破坏和创建布局 –

+0

它没有工作,我加入了代码以错误的方式。你没有提供完整的答案... – Alex

另一种方法是将所有信息存储在savedInstanceState并从那里恢复在onCre吃了()。 ,或者使用与setRetainInstance(真)片段来存储你的信息