先上代码
<style name="AppTheme.Fullscreen" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item><!--窗体是否有标题-->
<item name="android:windowActionBar">false</item><!--是否打开ActionBar-->
<item name="android:windowContentOverlay">@null</item><!--设置窗体内容背景-->
<item name="android:windowFullscreen">true</item><!--是否全屏 和windowTranslucentStatus属性冲突 -->
<item name="android:windowTranslucentStatus">true</item><!--这行代码使布局占据状态栏空间-->
<item name="android:windowTranslucentNavigation">true</item><!--部分存在Navigation栏的使之透明-->
<item name="android:windowBackground">@drawable/icon_load_bg
</style>
然后在需要使用的地方引用这个style。
根据备注应该比较清楚的了解到一些属性的关系,简单的就不详细说明了,还有部分没使用的感兴趣的可以自己去查阅。
需要注意的是。
1.启动页白屏现象用图片加载显示出来 是由“android:windowBackground”属性决定的。当然这里可以是一个图片 也可以是你自定的drawable。为什么这么说呢,这里你可能会有2个需求,可能是.9图就能满足,也可能是.9图比如不方便拉伸会造成变形。这个时候你就可以自定一个drawable 在里面对自己的背景图做处理,比如下面的这种方式。
<?xmlversion="1.0"encoding="utf-8"?>
<layer-listxmlns:android="http://schemas.android.com/apk/res/android">
<!-- 整体的背景颜色 -->
<itemandroid:drawable="@color/colorPrimary"/> <item>
<bitmap
android:gravity="center"
android:src="@drawable/icon_load_bg"
android:scaleType="centerCrop"/>
</item>
</layer-list>
基本图片的拉伸变形就是这2种方式解决的。
2.APP启动的LaunchActivity。沉浸到状态栏主要是使用“android:windowTranslucentStatus”,注意这个属性设置就不要设置“android:windowFullscreen”属性了,这个2个属性是android:windowFullscreen覆盖“android:windowFullscreen”属性。会导致你无法正常沉浸到状态栏。
3.关于机型的适配一般会默认设置"android:windowTranslucentNavigation"的属性,不然会在某些机型会出现navigationbar会显示的情况,从而发生你不想见到的效果
ps:以上是本人的使用和见解,如写的有问题请及时沟通我。看到会回复和更正。
网友评论