2011-08-22 29 views
6

有没有办法将横向模式设置为整个应用程序,而不是通过将android:screenOrientation="portrait"添加到AndroidManifest中的每个活动?为整个应用程序禁用横向模式

+2

这不是你应该如何处理Android的这种事情。除非你有足够的理由这样做,否则我会建议在清单中这样做。 – Codeman

回答

10

这是我能想到的唯一的事情。编写扩展活动的一类,把该类中以下内容:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

然后,而不是在你的其他类扩展活动,扩展新类。

+0

你在哪里把这个,在oncreate方法? – theJerm

+1

是的 - 你可以把它放在超类的onCreate方法中。只要不要忘记从扩展课程中调用super.onCreate。 – SBerg413

+0

感谢您的回复。 – theJerm

0

您可以尝试将该属性放入清单的节点中。我不知道是否支持。如果不是,恐怕把它放在你的每一个将成为下一个最简单的方法。

您可以通过使自己成为一个CustomActivity来扩展活动并将窗口标志设置为onCreate中的肖像来实现它。然后,通过所有其他活动,您可以扩展CustomActivity而不是普通的Activity。

7

这样做的一种编程方式,我能想到的是创建一个超类,它扩展活动并从那里扩展所有类。

已在受保护的方法在超类下面的设置和调用super.xxx()来启动这样的:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

如果您有什么不同的方式具体的活动,你可以简单地覆盖这个。

[我没有试过呢,但OOP的知识这部作品]

+2

有时当一个活动开始使用这种方法时,它可以快速从风景跳到人像,所以我会建议不要这样! – Dori

相关问题