【问题标题】:Android: how to disable FEATURE_NO_TITLEAndroid:如何禁用 FEATURE_NO_TITLE
【发布时间】:2011-01-31 16:42:41
【问题描述】:

我希望我的 Android 应用程序的行为如下所示。 1)纵向模式:带标题栏 2)横向模式:没有标题栏(由于高度限制)

我知道我可以实现 1) 使用 requestWindowFeature(Window.FEATURE_NO_TITLE),但是 旋转手机时如何从 1) 动态更改为 2)?

【问题讨论】:

    标签: android


    【解决方案1】:

    旋转手机时,您的活动将关闭并重新创建。在 onCreate 中,您可以获取一个 Display 实例(使用 getWindowManager().getDefaultDisplay())并查询它的宽度、高度和/或旋转来决定是否需要标题功能,这一切都在设置内容视图之前完成。

    【讨论】:

    • 感谢您的回答!我从配置中获得了轮换信息,并且成功地做到了。
    【解决方案2】:

    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 将拉伸默认布局。

    【讨论】:

    • 谢谢,我以为我不能在应用程序生命周期中更改功能,我忘记了每次旋转手机时都会调用 onCreate。
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多