博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个方法搞定透明状态栏
阅读量:6449 次
发布时间:2019-06-23

本文共 1719 字,大约阅读时间需要 5 分钟。

只调用两个方法即可搞定透明状态栏

说明:

  1. 以下三个方法都是静态方法, 放到你项目的工具类中调用即可;
/** * 透明状态栏(界面会展示在状态栏下面, 此时状态栏挡住了我们的界面上的一些东西, 需要处理) * 需要在 setContentView()方法之前调用, 否则程序会崩溃 */public static void alphaTask(Activity context) {    context.getWindow().requestFeature(Window.FEATURE_NO_TITLE);    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {        Window window = context.getWindow();        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS                | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);        window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);        window.setStatusBarColor(Color.TRANSPARENT);        window.setNavigationBarColor(Color.TRANSPARENT);    }}/** * 获取系统状态栏的高度(目的是让被系统状态栏挡住的内容移动到状态栏下面) */public static int getStatusBarHight(Context context) {    int statusBarHeight = -1;    int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");    if (resourceId > 0) {        statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);    }    return statusBarHeight;}/** * 设置ActionBar距离顶部的距离为系统状态栏的高度距离(此时, 状态栏已经不会挡住我们的界面了) */public static void initActionBar(Context context, View actionBar) {    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) actionBar.getLayoutParams();    params.setMargins(0, getStatusBarHight(context), 0, 0);}

单个activity调用即可, 如果要在BaseActivity中封装该功能, 在BaseActivity的onCreate方法中的setContentView方法之前调用alphaTask方法, 然后在BaseActivity中封装抽象方法, 将actionBar的view对象传入, 强制子类实现, 即可;

转载地址:http://ocmwo.baihongyu.com/

你可能感兴趣的文章
使用CocoaPods管理iOS的第三方类库
查看>>
Go 性能优化技巧 6/10
查看>>
我的Linux生涯之Mysql:Day04[Mysql之权限管理]
查看>>
javascript知识总结——标准时间与时间戳互换
查看>>
Spring @Async
查看>>
Python 函数
查看>>
制作自己的Winpe镜像(3):Wim镜像捕获及Wim镜像应用
查看>>
Java参数传递方式?
查看>>
我的友情链接
查看>>
设计模式之——适配器模式详解
查看>>
Spring Data JPA 简单介绍
查看>>
JavaScript入门
查看>>
jsp内置对象之 resquest
查看>>
meteor-angular优化启动
查看>>
springboot 系列教程十:springboot单元测试
查看>>
码云和git指令
查看>>
一篇不错的wsl文章
查看>>
推论统计8
查看>>
地图中画线(添加遮盖物)方法
查看>>
Web前端规范--通用规范
查看>>