【发布时间】:2011-01-31 16:42:41
【问题描述】:
我希望我的 Android 应用程序的行为如下所示。 1)纵向模式:带标题栏 2)横向模式:没有标题栏(由于高度限制)
我知道我可以实现 1) 使用 requestWindowFeature(Window.FEATURE_NO_TITLE),但是 旋转手机时如何从 1) 动态更改为 2)?
【问题讨论】:
标签: android
我希望我的 Android 应用程序的行为如下所示。 1)纵向模式:带标题栏 2)横向模式:没有标题栏(由于高度限制)
我知道我可以实现 1) 使用 requestWindowFeature(Window.FEATURE_NO_TITLE),但是 旋转手机时如何从 1) 动态更改为 2)?
【问题讨论】:
标签: android
旋转手机时,您的活动将关闭并重新创建。在 onCreate 中,您可以获取一个 Display 实例(使用 getWindowManager().getDefaultDisplay())并查询它的宽度、高度和/或旋转来决定是否需要标题功能,这一切都在设置内容视图之前完成。
【讨论】:
This answer 建议您不能在活动的生命周期内更改功能(如方向更改时发生的情况),因此他们建议实现您自己的标题(跳转到“::Edit::”部分):
Hiding Title in a Fullscreen mode?
::编辑::
好吧,如果您尝试在活动的生命周期内动态显示和隐藏它,我不确定您是否可以使用官方窗口标题来做到这一点,因为之前提到过需要设置窗口功能的注释调用 setContentView()。
您可以做的一件事是实现您自己的标题栏并动态显示和隐藏它...我将这个示例放在一起应该让您走上正轨
由于当您更改方向时,您的应用会经历一系列生命周期更改,因此您有机会在 onCreate 中显示或隐藏您的标题。
http://stuffthathappens.com/blog/2008/11/26/android-lifecycle-triggers-part-2/
或者您为横向模式指定完全不同的布局:
http://developer.android.com/resources/tutorials/hello-world.html
横向布局
如果您想要一个不同的横向设计,请将您的布局 XML 文件放在 /res/layout-land 中。当布局发生变化时,Android 会自动看这里。如果没有定义这种特殊的横向布局,Android 将拉伸默认布局。
【讨论】: