来两张效果图对比一下

第一张图是实现了透明状态栏的效果,第二张图是未实现透明状状态栏。如果还看不出区别,那么请打开手机淘宝和任一手机银行App对比顶部的颜色。

现在好多手机已经是全面屏了,如果我们的应用在顶部还是多出来这么一块黑条,那多不美观啊(APP 主题色是黑色的略过)

那么如何实现?我这里由于项目集成了 statusbarutil所以直接就参考了他例子中的代码来实现了。

StatusBarUtil 地址
StatusBarUtil 在 Fragment 使用

实现

  1. 导包
    compile 'com.jaeger.statusbarutil:library:1.4.0'
  2. 设置 NoActionBar的主题( 我这里实现了右滑返回,所以设置背景为透明)
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="android:textAllCaps">false</item><item name="android:windowActionBar">false</item><item name="windowActionBar">false</item><item name="android:windowAnimationStyle">@style/AnimationActivity</item><item name="windowNoTitle">true</item><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item><item name="android:windowIsTranslucent">true</item><item name="android:windowBackground">@android:color/transparent</item></style>
  1. 区别不同版本对待
    新建一个res/values-v19目录,在目录下创建一个dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><!-- Default screen margins, per the Android Design guidelines. --><dimen name="statusbar_view_height">25dp</dimen>
</resources>

在原先的res/values目录下的dimens.xml也添加statusbar_view_height

<dimen name="statusbar_view_height">0dp</dimen>
  1. 给头部带去一些色彩

我这里是首页实现 透明状态栏,而首页是由一个 Activity + 4 个 Fragment 组成的。这里我们只需要将 Activity状态栏透明即可,在Fragment中可动态设置是否需要透明状态栏。

比如我的首页,顶部是显示图片,我想它顶部状态栏要透明,可以这么做。

第一步:在布局文件的顶部加上<LinearLayout></LinearLayout>中的控件

 <android.support.design.widget.AppBarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><android.support.design.widget.CollapsingToolbarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"app:contentScrim="@color/colorPrimary"app:layout_scrollFlags="scroll|exitUntilCollapsed"><com.youth.banner.Bannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="200dp"app:layout_scrollFlags="scroll|snap"app:layout_collapseMode="parallax" /><android.support.v7.widget.Toolbarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"app:layout_collapseMode="pin"app:contentInsetStart="0dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><Viewandroid:id="@+id/fake_status_bar"android:layout_width="match_parent"android:layout_height="@dimen/statusbar_view_height"android:background="@color/colorPrimary"/><TextViewandroid:id="@+id/search_layout"android:layout_width="match_parent"android:layout_height="wrap_content"android:minHeight="40dp"android:gravity="center"android:hint="@string/search_hint_txt"android:paddingStart="10dp"android:paddingEnd="10dp"android:background="@drawable/home_search_bg_shape"/></LinearLayout></android.support.v7.widget.Toolbar></android.support.design.widget.CollapsingToolbarLayout></android.support.design.widget.AppBarLayout>

idfake_status_barView控件是为了适配顶部的状态栏
idsearch_layoutView控件是顶部的搜索框

第二步:在 fragment 中再设置状态栏的颜色为透明

// 透明顶部
setTvTitleBackgroundColor(Color.TRANSPARENT);public void setTvTitleBackgroundColor(@ColorInt int color) {fakeStatusBar.setBackgroundColor(color);
}

再比如我的其他页面顶部只想显示 App 的主题色,可以这么做。

直接在布局文件中设置 idfake_status_bar控件的背景色为主题色即可。

 <LinearLayoutandroid:id="@+id/layout_toolbar"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><Viewandroid:id="@+id/fake_status_bar"android:layout_width="match_parent"android:layout_height="@dimen/statusbar_view_height"android:background="@color/colorPrimary"/><TextViewandroid:id="@+id/tv_project_toolbar"android:layout_width="match_parent"android:layout_height="?actionBarSize"android:text="我是 Toolbar "android:textColor="@color/white"android:textSize="18sp"android:gravity="center"android:background="@color/colorPrimary"/></LinearLayout>

喜欢文章的话点下文章底部小心心

本文完,欢迎你留言讨论。

Android Fragment 实现状态栏透明(沉浸式)相关推荐

  1. android透明度大全,状态栏大全-状态栏透明(沉浸式)、变色及全屏的区别

    手机的顶部状态栏,也就是信号.电量那条,有4种状态,分别是正常.变色.透明(也称沉浸式状态栏).消失(也就是全屏). 后3种特殊用法,具体见下: 状态栏变色 常见使用场景:如果title背景为纯色且显 ...

  2. android实现系统状态栏的隐藏方法,Android隐藏系统状态栏(沉浸式状态栏)和设置状态栏颜色...

    Android 5.0(API 21)之后就可以对系统状态栏进行设置了,这里我不是想深入讨论对系统状态栏的一些高级设置,因为一般也用不到,我只想说最常见的两种场景 隐藏系统状态栏,这就是感觉很牛逼的沉 ...

  3. 状态栏大全-状态栏透明(沉浸式)、变色及全屏的区别

    手机的顶部状态栏,也就是信号.电量那条,有4种状态,分别是正常.变色.透明(也称沉浸式状态栏).消失(也就是全屏). 后3种特殊用法,具体见下: 状态栏变色 常见使用场景:如果title背景为纯色且显 ...

  4. (AS笔记)Android全透明沉浸式主题样式——顶部状态栏+底部导航栏

    目录 1.前言 2.自定义主题theme 3.全透明沉浸式主题theme 4.设置状态栏颜色(Android 5.0+) 5.设置状态栏半透明 6.设置状态栏全透明 7.设置底部导航栏半透明 8.全透 ...

  5. Android之高仿QQ6.6.0侧滑效果(背景动画、透明+沉浸式状态栏、渐变效果)

    根据需求实现类似QQ侧滑效果,之前看到过很多实现方式通过SlidingMenu,但是既然官方推出了自己的专属控件,那么使用DrawerLayout就是不二选择.且看下文. 一.先来看看官方文档解释 D ...

  6. android 4.4 以上沉浸式状态栏和沉浸式导航栏管理,一句代码轻松实现

    ImmersionBar 项目地址:gyf-dev/ImmersionBar  简介:android 4.4 以上沉浸式状态栏和沉浸式导航栏管理,一句代码轻松实现,以及对 bar 的其他设置,详见 R ...

  7. Android --- 详细介绍透明式状态栏和沉浸式状态栏

    今天来写一个类似于qq空间的那种沉浸式效果.先来看看qq空间的这种效果 我们看到,头部局上拉的时候有个头布局的透明是从0变化到1,当你下拉的时候,头部局透明度又从1变化到0了.始终效果看起来还是不错的 ...

  8. 2022-10-13 Android APP 全屏幕显示全透明沉浸式主题android:theme样式 Theme.TranslucentTheme

    一.android8真机上运行默认的app主题是这样的,有titile,状态栏不透明. 二.我想改成全透明沉浸式主题样式. 1.res/values/themes.xml 文件添加Translucen ...

  9. android 工具栏沉浸 下拉,如何在Android应用中实现一个沉浸式状态栏效果

    如何在Android应用中实现一个沉浸式状态栏效果 发布时间:2020-12-08 17:04:42 来源:亿速云 阅读:151 作者:Leah 这篇文章将为大家详细讲解有关如何在Android应用中 ...

最新文章

  1. 新思科技Chekib:AI芯片架构创新面临四大挑战
  2. ASP.NET(C#)常用数据加密和解密方法汇总
  3. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](3)
  4. node工程默认url_node 爬虫入门实例,简单易懂
  5. wordpress 后台404解决办法
  6. Java性能最后一个领域:去除垃圾回收器
  7. HDU 5834 Magic boy Bi Luo with his excited tree 树形DP
  8. [Luogu P2801]教主的魔法
  9. Servlet编写登陆页面简单实践
  10. 设计模式演练——工厂方法模式
  11. Python实现鸢尾花数据集分类问题——使用LogisticRegression分类器
  12. 联想台式计算机编号怎么查,联想台式机主机编号怎么查询
  13. java中竖线怎么画_java split | (竖线)
  14. 创新设计思维——做出好产品的艺术
  15. Protocol handler start failed
  16. ASP.NET 中验证的自定义返回和统一社会信用代码的内置验证实现
  17. DIY一台键盘主机,有点点Raspberry Pi 400那味了
  18. 致终将火爆的NFC——ISO14443 TypeA(一)
  19. python拟合非线性模型_python-绘制分段拟合到非线性数据
  20. 使用MCGS触摸屏与单片机通讯的心得

热门文章

  1. 计算机无法自动排列,win10系统文件夹不自动排列的解决方法
  2. 对称密钥算法和公钥算法的优缺点
  3. 大数据量查询解决方案
  4. 五、C语言创建桌面程序:画笔和画刷
  5. 淘宝店铺推广难?这些方法你还没掌握!
  6. Android 微博登录
  7. linux怎么查看当前系统版本号,Linux下怎么查看当前系统的版本
  8. 模板解析原理,脱裤子放屁
  9. 人工智能(14)安全
  10. 都在说软件测试真的干不到35岁,那咋办呢...我都36了...