帖子
帖子
用户
博客
课程
显示全部楼层
1
帖子
0
勋章
29
Y币

[App引擎] 鸿蒙fixStatusBar失效

[复制链接]
发表于 2023-3-21 13:40:30
问题描述:fixStatusBar增加上内边距失效
测试手机:华为p30pro(安卓Android 11版本非品牌机测试正常
系统版本:鸿蒙3.0.0123
测试方式:自定义Loader和AppLoader

代码如下:

var header = $api.byId('H-header');//头部 min-height: 45px;
$api.fixStatusBar(header);//config已经设置<preference name="statusBarAppearance" value="true"/>
var headerPos = $api.offset(header);
alert(api.safeArea.top);//25
alert(headerPos.h);//45



问题图片

问题图片

正常图片

正常图片
技术咨询-F
380
帖子
4
勋章
6
Y币
最佳答案
我这找了两个鸿蒙3.0 的测试没问题。 title #header{ height: 40px; text-align: center; line-height: 40px; background-color: blue; color: #fff; } .title { font-size: 16px; } 工作台 apiready = function () { $api.fixStatusBar($api.byId('header')) };
380
帖子
4
勋章
6
Y币
看这图片,是有上层元素盖住了底部,不是增加上内边距失效。 如果增加边距失效,那工作台 三个字应该往上去。
1
帖子
0
勋章
29
Y币
技术咨询-F · 2023-3-21 15:12看这图片,是有上层元素盖住了底部,不是增加上内边距失效。 如果增加边距失效,那工作台 三个字应该往上去。

正常情况通过 $api.offset(header).h获取到的头部高度是我设置min-height(45)加上状态栏高度(25),但是我alert($api.offset(header).h)是45
380
帖子
4
勋章
6
Y币
Lee_Y · 2023-3-21 18:26正常情况通过 $api.offset(header).h获取到的头部高度是我设置min-height(45)加上状态栏高度(25),但是我alert($api.offset(header).h)是45

alert(api.safeArea.top);  正常吧,如果这个正常,padding 肯定能加上。

min-height  改为height  试试
1
帖子
0
勋章
29
Y币
本帖最后由 Lee_Y 于 2023-3-22 14:56 编辑
技术咨询-F · 2023-3-22 09:46alert(api.safeArea.top);  正常吧,如果这个正常,padding 肯定能加上。

min-height  改为height  试试

改为height后,鸿蒙3.0手机依旧不行,原本测试正常的安卓机,也会出现同样的问题。
原代码(设置min-height),在测试机是鸿蒙2.0可以正常显示。



以下为api.js的输出:
1、鸿蒙3.0,设置paddingTop后,offsetHeight值未发生改变

641aa5e086661.png
2、安卓11非品牌机器,设置paddingTop后,offsetHeight发生改变
641aa699e68e5.png

380
帖子
4
勋章
6
Y币
Lee_Y · 2023-3-22 14:07改为height后,鸿蒙3.0手机依旧不行,原本测试正常的安卓机,也会出现同样的问题。
原代码(设置min-height),在测试机是鸿蒙2.0可以正常显示。


华为 Mate 40E 2023-03-22 15_06_03.png 华为 P40 Pro 2023-03-22 15_11_15.png



我这找了两个鸿蒙3.0 的测试没问题。



<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport"
        content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
    <title>title</title>
    <link rel="stylesheet" type="text/css" href="css/api.css" />
    <style>
        #header{
            height: 40px;
            text-align: center;
            line-height: 40px;
            background-color: blue;
            color: #fff;
        }
        .title {
            font-size: 16px;
        }

    </style>
</head>

<body>
    <div id='header'>
        <div class="title">工作台</div>
    </div>
   
</body>
<script type="text/javascript" src="script/api.js"></script>
<script type="text/javascript">
    apiready = function () {
        $api.fixStatusBar($api.byId('header'))
    };

   
</script>

</html>



您需要登录后才可以回帖 登录

本版积分规则