zoukankan      html  css  js  c++  java
  • Cordova 实现沉浸式(透明)状态栏效果

    沉浸式状态栏(Immersive Mode)和透明状态栏(Translucent Bar)。

    这两个概念很多地方的解释都不是很清晰,所以导致很多人都各有各的认识。所以这里我也有一个自己的认识,笔者认为沉浸式状态栏也可以说是全屏模式,即隐藏状态栏与导航栏。 而透明状态栏是不隐藏状态栏但是它所呈现的是透明的。因为默认情况下状态栏都是黑底白字。而我们现在要实现的就是透明状态栏下的全屏模式。话不多说,看效果:

     
    1.png
     
    2.png

    对比这两张图的状态栏效果可以看出。第一张图效果对界面来说不是很美观,但是第二个效果就非常美观了。下面我们就来实现。

    使用cordova实现就需要cordova-plugin-statusbar这个插件,我们需要对此插件进行一些修改即可实现我们想要的效果。

    在项目路径->platforms->android->src->org->apache->cordova->statusbar中找到StatusBar.java文件。
    然后修改run方法即可:

                public void run() {
                    // Clear flag FLAG_FORCE_NOT_FULLSCREEN which is set initially
                    // by the Cordova.
                    Window window = cordova.getActivity().getWindow();
    
    //添加代码start         
    window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(Color.TRANSPARENT);
    window.setNavigationBarColor(Color.TRANSPARENT);
    //添加代码end
                     window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    
                    // Read 'StatusBarBackgroundColor' from config.xml, default is #000000.
                    //注释原有设置背景色的方法
                 //setStatusBarBackgroundColor(preferences.getString("StatusBarBackgroundColor", "#000000"));
                }
    
     
     
  • 相关阅读:
    STDMETHOD_,STDMETHOD,__declspec(novtable)和__declspec(selectany)
    __stdcall 与 __cdecl
    winows 进程通信的实例详解
    Windows 下多线程编程技术
    MFC/VC++ UI界面美化技术
    VC++中 wstring和string的互相转换实现
    VS2010项目转化为VS2008项目
    VC++ 响应回车键的2种方法
    高效 告别996,开启java高效编程之门 2-4实战:单一条件参数化
    高效 告别996,开启java高效编程之门 2-3实战:硬编码业务逻辑
  • 原文地址:https://www.cnblogs.com/zzsdream/p/11928968.html
Copyright © 2011-2022 走看看