1. 程式人生 > >MUI 啟用沉浸式&header顯示問題

MUI 啟用沉浸式&header顯示問題

  1. 啟用沉浸式
    在manifest.json配置檔案中新增如下程式碼(兩種方式皆可)
    a、
"plus": {
		"statusbar": {
			"immersed": "supportedDevice",
			"style": "dark"
		},

b、

"plus": {
		"statusbar": {
			"immersed": true
		},
  1. 啟用沉浸式後,header顯示問題
    MUI 中 ,header標籤的高度預設為一個固定值。在實際中,不同的移動裝置狀態列是不一樣的,所以在H5中使用"header"標籤時顯示出問題。
    (如果使用原生的 標題欄,不會出現如上header顯示問題)
    如下解決:
    a、在header標籤中新增id=“header”
    b、新增如下js,可放在一個js檔案中統一引用
mui.plusReady(function() {

	var topoffset = '45px';

	var header = document.getElementById('header');

	console.log(header)

	console.log(plus.navigator.isImmersedStatusbar())

	if(plus.navigator.isImmersedStatusbar()) { // 相容immersed狀態列模式

		// 獲取狀態列高度並根據業務需求處理,這裡重新計算了子視窗的偏移位置

		topoffset = (Math.round(plus.navigator.getStatusbarHeight()) + 45);

		header.style.height = topoffset + 'px';

		header.style.paddingTop = (topoffset - 45) + 'px';

	}

});

c、設定內容欄div 的margin-top 屬性,如圖所示
在這裡插入圖片描述
3. 啟用沉浸式後,下拉重新整理時圖示高度設定

	down: {
			style: 'circle',
			height: '50px', 
			range: '100px', 
			offset: '35px', 
			callback: pulldownRefresh
					},

4.選項卡顯示問題
在啟用沉浸式後,如下圖所示tab標籤,被原生的標題欄遮蓋了,
在此我們更改下內容欄的top座標即可。
在這裡插入圖片描述
① 在js 中,以下是用來展示內容欄html頁面的方法

mui(".scroll").on("tap", ".mui-control-item", function(e) {
					var wid = this.getAttribute("data-wid");
					group.switchTab(wid);
				});

② 我們進入switchTab()方法,在webviewGroup.js中,更改top值即可。
在這裡插入圖片描述