我在启动屏幕上添加了一个底图,并发现了一个不错的新挑战,因为我现在没有平衡状态栏和导航栏
我的启动画面是通过启动器活动的主题实现的,并且在创建并准备好活动后会加载应用程序主题。
所以我不使用额外的启动活动。
样式如下:
<style name="splashscreen" parent="android:Theme.NoTitleBar">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowFullscreen">false</item>
</style>
splash_screen-drawable:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<!-- color of spaces not covered by the image -->
<color android:color="#0f0" />
</item>
<!-- the image in the center of the screen -->
<item android:gravity="center" android:drawable="@mipmap/splash_image"/>
<!-- the image at the bottom-end of the screen-->
<item android:gravity="bottom|end" android:drawable="@mipmap/inspired" android:end="15dp" android:bottom="20dp"/>
</layer-list>
这将产生如下视图:
splash without status-bar color
这很好,但是屏幕顶部的状态栏为黑色:-( 因为android:statusBarColor在这里没有效果,我必须添加
<item name="android:statusBarColor">#f00</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
但是随后我的启动屏幕以某种方式变得“更长”,并被屏幕底部的导航栏覆盖:
splash overlapped by navigation bar
我发现更改此视图的任何内容的唯一参数是
<item name="android:windowTranslucentNavigation">true</item>
但是您甚至无法阅读文本:
所以我希望以与初始背景相同的颜色显示状态栏,因为它很漂亮,并且全屏显示是不可行的,因为我真的希望状态栏带有图标可见
我的启动应该在导航栏之前结束,所以没有其他东西重叠。
我也尝试了其他基本主题,但是android:Theme.xxx是唯一没有底部重叠的主题(只要我不尝试设置状态栏颜色)
有什么建议或解决方案吗?
我在另一个线程中看到的是,设置android:windowBackground或android:background是有区别的,当我使用android:background时,它可用于初始屏幕,但即使是吐司也具有相同的背景