Android全沉浸式的方式

一、关于Android沉浸式 大家应该都比较了解首先要在4.4及以上才可以实现,并且实现相对简单直接在theme中的style中设置

<item name="android:windowTranslucentStatus">true</item>
或者代码中设置

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
然后布局中设置

android:fitsSystemWindows="true"
便可以实现沉浸式状态栏,但是在4.4上是渐变效果 而在5.0上是一层阴影比如QQ这种


 但是比4.4好看的多。那么如果想去掉这层阴影 个人研究后发现只能在5.0上面才能实现(当然各位朋友有好的办法也可以告诉我)。

现在说下全沉浸(也就是去掉阴影)5.0上面最简单的方法就是

<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
在style中设置这两句话然后将下面一句的颜色设置为自己想要的值然后去掉
<item name="android:statusBarColor">@android:color/transparent</item>
这句话即可,但是这样其实只是改变了状态栏颜色,而非“沉浸”,并且这样还有一个不好的地方就是如果有侧滑菜单那么侧滑菜单并不会沉浸。


有没觉得很难看,那要解决这个问题首先要把上面的

<item name="android:statusBarColor">@android:color/transparent</item>

这句话加上设置为透明,然后此处分两种情况一种是toolbar的情况:先把toolbar设置

android:fitsSystemWindows="true"

然后将toolbar高度设置为wrap_content而不是?attr:android/style:actionBarSize,然后给当前布局每一个加上

android:fitsSystemWindows="true"

我的代码是用AndroidStudio建的带侧滑的界面,然后xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.example.administrator.immersionstatusbar.MainActivity">

    <!--<include layout="@layout/without_toolbar"/>-->

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#f0f"
            android:fitsSystemWindows="true"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>
这样便可以设置好


但现在还有个问题就是侧滑还是有阴影

要去掉这层阴影其实也很简单将箭头处的这句话去掉即可

以上是有侧滑菜单的情况,如果没有可以向上面所说5.0上直接设置状态栏的颜色。但如果还是想没有阴影的全沉浸可以用

android.support.design.widget.CoordinatorLayout
这个控件作为跟布局实现。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值