HBuilder設置APP狀態欄


一、 前言

  狀態欄就是手機屏幕最頂部的區域,包括了:信號、運營商、電量等信息。通常APP都有屬於自己的色調風格,為了達到整體視覺美觀,通常會設置狀態欄和標題欄的色調設置成一致。

  圖例:

  

 


 

 

二、狀態欄狀態類型

  1. 默認
  2. 變色(設置顏色)
  3. 透明(沉浸式)
  4. 消失(全屏)

 


 

 

三、狀態欄變色

  1.效果如圖:

  2.根據色調設置狀態欄文字顏色,文字顏色只提供兩種值:light(白色)、dark(黑色)

  3.設置標題欄背景顏色

  4.設置狀態欄背景顏色,顏色值為16進制

  示例代碼:

1 <link href="css/mui.min.css" rel="stylesheet"/>
2 .mui-bar{ background-color: red;}
3 </link>
4 <script>        
5 mui.plusReady(function(){             
6 plus.navigator.setStatusBarStyle('light');  
7 plus.navigator.setStatusBarBackground('#FF0000');             
8 });    
9 </script>    
View Code

  注意事項:

  背景色終端支持僅:Android5及以上系統支持;iOS7.0及以上系統支持。

  文字色終端支持僅:Android5只有小米和魅族支持,Android6及以上所有安卓支持;iOS7及以上支持。

 


  

四、狀態欄透明(沉浸式)

  1.效果如圖:

  

          (將背景圖片和狀態欄、標題欄貫通了)

 

   

  2.運用實戰(登錄界面)

  需求描述:將背景設置成圖片,圖片可以適應不同設備的分配率(響應式),將狀態欄的背景設置成透明,背景圖片覆蓋狀態欄至屏幕頂部。  

 <style>       
    html,body{height: 100%;width: 100%;}  
    body{  
      background:url(image/background.png)no-repeat;   
      background-size:100% 100%;                  
        filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image/background.png',sizingMethod='scale');  
    }            
    </style>
設置頁面背景

 

mui.plusReady(function(){             
    plus.navigator.setStatusBarStyle('light');               
});
針對背景色的色調設置狀態欄文字的顏色

 

"plus": {
    "statusbar": {
        "immersed": true
    }
}
打開應用的manifest.json文件,切換到代碼視圖,在plus -> statusbar 下添加immersed節點並設置值為true

 

   3.沉浸式延伸的問題

   由於沉浸式模式是在manifest.json文件配置,作為了一個固定全局的設置,沉浸式的設置可能只是針對部分頁面,那么對其他的頁面都牽連了。

   導致的效果如圖:

  

              (狀態欄的高度被忽略)

  解決代碼:

  mui.plusReady(function(){                      
    plus.webview.currentWebview().setStyle({
        statusbar:{background:'#ff0000'},top:0,bottom: 0
  });
 });

  background屬性,設置狀態欄的背景色。

 


 

 

五、 全屏顯示(沒有狀態欄)

在應用中可調用5+ API動態改變應用是否全屏顯示的狀態:

function fullscreen(){
        // 設置應用全屏顯示!
        plus.navigator.setFullscreen(true);
}
function unfullscreen(){
        // 設置應用非全屏顯示!
        plus.navigator.setFullscreen(false);
}
function isfullscreen(){
        // 查詢應用當前是否全屏顯示!
        console.log( "是否全屏:"+(plus.navigator.isFullscreen()?"是":"否") );
}

 


 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM