文档管理中心

快应用|fixed布局高度铺满全屏的解决方案

问题现象

同样的布局代码在联盟调试器中正常,在华为显示异常,如下图所示:

cke_305.png

cke_306.png

图1 联盟调试器效果

图2 快应用加载器效果

布局代码如下:

收起
自动换行
深色代码主题
复制

<template> <!-- Only one root node is allowed in template. --> <div class="container"> <text class="title">Hello World</text> <text class="title">Hello World1</text> <div class="fixed"> <text class="desc">pick up</text> </div> </div></template><style lang="less"> .container { width: 100%; height: 100%; } .title { font-size: 35px; margin-left: 20px; }.desc{ background-color: #ff8800; width: 30%;} .fixed { justify-content: center; width: 100%; background-color: rgba(0, 0, 0, 0.7); flex-direction: row; padding: 20px 30px; border-radius: 20px; justify-content: space-between; bottom: 140px; position: fixed; }</style><script> module.exports = { data: { componentData: {}, }, onInit() { this.$page.setTitleBar({ text: 'menu', textColor: '#ffffff', backgroundColor: '#007DFF', backgroundOpacity: 0.5, menu: true }); } }</script>

问题分析

图中不一致的界面css样式是fixed布局,而根节点div的css样式container中没有设置方向,快应用规范中默认div是横向。当根节点div的方向是row时,且fixed布局的子元素没有设置高度时,快应用加载器在计算fixed元素的高度时是按照屏幕高度来计算的,这样就会导致展示出来的界面高度铺满全屏。

注意: 如果节点div的方向本身设置的是column,以上fixed布局的代码运行后显示的是正常的高度。

解决方案

针对以上代码fixed布局的css样式中,需要对指定组件设置高度,这样在联盟调试器和快应用加载器中显示效果都是一致的。修改代码如下(见红色部分):

image.png

修改后运行效果如下:

cke_307.png

点赞
收藏
回复
2
分享
举报
浏览753 发布于2021-09-22 09:02未知归属地
全部评论
最多点赞
最新发布
最早发布
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。