我想要做的事情:在启动应用程序的第二个或第二个中隐藏应用程序的ActionBar(和标题栏)。
Ouya Android设备已定制ActionBar主题,以最大限度地减少过扫描问题。 (与Google TV不同,ouya设备没有过扫描校准程序,因此Ouya开发人员在与ActionBar兼容的主题中添加了大量填充元素)。这适用于黑暗全息和对话主题。不幸的是,默认的轻型全息主题动作条在Ouya设备上看起来很糟糕。
这让我对Launch动画感到非常悲痛,因为我正在将现有的Android应用移植到Ouya。
由于我需要做一些相关的定制来容纳Ouya的游戏控制器,我想当我发现我在Ouya上运行时我不会使用Action栏。所以我调用了getActionBar()。hide(),然后只为Ouya设备加载了一个带有额外功能的Ouya特定布局。
问题:在应用程序启动期间,Android会在应用程序加载时显示一个空操作栏(只是应用程序图标和应用程序标题),并使用默认主题进行活动,从清单文件中读取。延迟是相当重要的 - 大约两秒钟左右,因此应用程序图标和损坏的ActionBar的闪存非常明显。所有这些都发生在我的应用程序中执行第一行代码之前。如果我在主活动的构造函数上设置了断点,那么在断点被击中之前,错位的标题屏幕将显示整整两秒。
添加
<item name="android:windowNoActionBar">true</item>
似乎没有任何效果。 Android可能会显示标题栏而不是虚拟操作栏。加入
<item name="android:windowNoTitle">true</item>
应用程序主题隐藏虚拟操作栏,但在ActionBarCompat库代码中导致一系列长时间的崩溃。
是否有一种很好的干净方法可以控制在启动过程中显示的内容,而不会破坏ActionBarCompat代码?
<item name="android:windowDisablePreview">true</item>
似乎只是一种方法,虽然它有点令人不安,因为现在发射只是延迟了两秒钟。 : - /
补充要求:我真的想为Ouya和常规Android设备提供一个二进制文件,因此如果它们无法在所有平台上合理地工作,则不希望显式和样式更改。