【快应用】响应式布局适配横竖屏或折叠屏

news2024/11/30 12:38:15

 【关键词】

响应式布局、折叠屏、横竖屏

【问题背景】

当前开发者在开发快应用时,往往将designWidth设置为设备屏幕的宽度,这时,应用的内容会随着设备宽度的变大而拉伸显示,导致在大屏、横屏、折叠屏展开时显示效果不好。

在折叠屏合起和展开的效果如下,可以看出页面各元素尺寸在展开时明显变大了。

cke_7130.png

【解决方案】

通过使用快应用的响应式布局能力开发新应用或者改造已有应用,可以使快应用在手机、平板、智慧屏等各种尺寸的设备都有良好的展示效果。

一、配置manifest文件

1、将minPlatformVersion配置为1066及以上版本

2、修改config节点下的designWidth属性为device-width。

二、布局页面元素

根据常见的屏幕宽度对页面元素的尺寸和排列位置进行规划。常见屏幕宽度如下:

  •  正常手机竖屏的宽度:360px
  • 正常手机横屏的宽度:640px、720px 等
  • 折叠屏展开的宽度:733px
  • 折叠屏合起来时的宽度:383px

三、动态布局

根据屏幕的宽度来判断一行渲染几张图片,以下示例实现了根据屏幕宽度来控制list展示列数的效果。

当简单的动态布局无法实现所需效果时,可以考虑使用MediaQuery进行适配,详细参见链接:

https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-mediaquery-0000001170210011

实现如下:

<template>

  <!-- Only one root node is allowed in template. -->

  <div class="container">

    <div class="btn-container">

      <text onclick="switchOrientation" class="orientation-btn">{{$t('message.framework.screenSwitch.switchScreen')}}</text>

    </div>

    <list class="list">

      <list-item type="box" class="list-item bg-blue"></list-item>

      <list-item type="box" class="list-item bg-green"></list-item>

      <list-item type="box" class="list-item bg-gray"></list-item>

      <list-item type="box" class="list-item bg-red"></list-item>

    </list>

  </div>

</template>

 

<style lang="sass">

  .container {

    flex-direction: column;

    padding-bottom: 50px;

  }

  .bg-green {

    background-color: #64bb5c;

  }

  .bg-blue {

    background-color: #46b1e3;

  }

  .bg-gray {

    background-color: #5d5e5d;

  }

  .bg-red {

    background-color: #e64566;

  }

  .orientation-btn {

    color: #0a59f7;

    font-size: 32px;

    font-weight: 500;

  }

  .list {

    margin-left: 32px;

    margin-right: 32px;

    margin-top: 30px;

    height: 500px;

  }

  .list-item {

    height: 200px;

    margin-right: 20px;

    margin-bottom: 20px;

  }

  .btn-container{

    height: 100px;

    align-items: center;

    justify-content: center;

  }

  @media screen and (max-width: 599) {

    .list{

      columns: 3;

    }

  }

  @media screen and (min-width: 600) {

    .list{

      columns: 4;

    }

  }

</style>

 

<script>

  const orientationMap = {

    portrait: 'portrait',

    landscape: 'landscape'

  }

  import configuration from '@system.configuration';

  module.exports = {

    public: {

      orientation: orientationMap.portrait

    },

    onInit: function () {

      this.$page.setTitleBar({ text: this.$t('message.framework.screenSwitch.barTitle') });

    },

    switchOrientation() {

      if (this.orientation === orientationMap.portrait) {

        this.orientation = orientationMap.landscape;

      } else {

        this.orientation = orientationMap.portrait;

      }

      configuration.setScreenOrientation({

        orientation: this.orientation,

      })

    }

  }

</script>

竖屏时效果:

cke_3971.png

横屏时效果:

cke_5632.png

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMP考试应该要如何备考?如何短期通过PMP?

我从新考纲考完下来&#xff0c;3A通过了考试&#xff0c;最开始也被折磨过一段时间&#xff0c;但是后面还是找到了方法&#xff0c;也算有点经验&#xff0c;给大家分享一下吧。 程序猿应该是考PMP里面人最多的&#xff0c;毕竟有一个30大坎&#xff0c;大部分人还是考虑转型…

微信小程序button按钮设置宽度无效

button按钮设置宽度无效 背景&#xff1a; 在开发小程序的过程中&#xff0c;遇到了button按钮设置宽度无效的问题 微信客户端 7.0 开始&#xff0c;UI 界面进行了大改版。小程序也进行了基础组件的样式升级&#xff0c;涉及的组件有 button,icon,radio,checkbox,switch,sli…

手把手教你在昇腾平台上搭建PyTorch训练环境

PyTorch是业界流行的深度学习框架&#xff0c;用于开发深度学习训练脚本&#xff0c;默认运行在CPU/GPU上。在昇腾AI处理器上运行PyTorch业务时&#xff0c;需要搭建异构计算架构CANN&#xff08;Compute Architecture for Neural Networks&#xff09;软件开发环境&#xff0c…

《花雕学AI》36:探索Aski AI——集成问答、写作和绘画功能的强大AI平台

引言&#xff1a;人工智能是当今时代的最热门和最有前途的技术之一&#xff0c;它可以帮助人类解决各种复杂和有趣的问题&#xff0c;提高生活和工作的效率和质量。然而&#xff0c;人工智能的应用还面临着许多挑战和局限&#xff0c;比如数据的稀缺和质量、算法的复杂性和可解…

CompletableFuture详解-初遇者-很细

目录 一、创建异步任务 1. supplyAsync 2. runAsync 3.获取任务结果的方法 二、异步回调处理 1.thenApply和thenApplyAsync 2.thenAccept和thenAcceptAsync 2.thenRun和thenRunAsync 3.whenComplete和whenCompleteAsync 4.handle和handleAsync 三、多任务组合处理 1…

Git的安装及基础命令

一. 安装Git 首先请前往Git官网去下载最新的安装包:https://git-scm.com/download/win 运行下载好的 .exe 文件&#xff0c;一路next即可。 右击桌面出现以下两个就算是成功。 安装完成后,需要设定用户名和邮箱来区分不同的用户。右击屏幕&#xff0c;选择“Git Bash Here”…

​Lambda表达式详解​-初遇者-很细

目录 Lambda简介 对接口的要求 Lambda 基础语法 Lambda 语法简化 Lambda 表达式常用示例 lambda 表达式引用方法 构造方法的引用 lambda 表达式创建线程 遍历集合 删除集合中的某个元素 集合内元素的排序 Lambda 表达式中的闭包问题 Lambda简介 Lambda 表达式是 JD…

骑行,为日益冷漠的人际关系加点温度

随着社会的发展和人们生活水平的提高&#xff0c;越来越多的年轻人、老年人和中年人开始关注健康和运动。而骑行作为一种健康、环保、经济实惠的运动方式&#xff0c;受到越来越多人的喜爱。本文将从社会面探讨这些话题对于不同人群的影响。 首先&#xff0c;骑行对身体有着多方…

狂飙,从功能测试转到自动化测试,我的测试之路涨了20k...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

《四》Git 中的远程仓库

SSH 登录&#xff1a; 每个远程仓库都有两种地址&#xff1a;HTTPS 和 SSH。如果是 HTTPS 的地址&#xff0c;每次 push 的时候都要输入用户名和密码以校验身份。如果 SSH 的方式&#xff0c;就不再需要每次都输入用户名和密码了。 cd ~ 进入用户的家目录&#xff0c;执行 ss…

ChatGPT在智能外呼机器人领域的应用

随着人工智能技术的不断发展&#xff0c;自然语言处理(NLP)技术也逐渐成为各行各业的热门技术。其中&#xff0c;ChatGPT技术是近年来备受关注的技术之一。ChatGPT技术是一种基于自然语言处理和深度学习的人工智能技术&#xff0c;它可以处理自然语言文本&#xff0c;实现自动化…

Maven 概述及下载安装

一、为什么要学习 Maven 我们构建一个项目需要用到很多第三方的类库&#xff0c;就需要引入大量的jar包&#xff0c;并且Jar包之间的关系错综复杂&#xff0c;缺少任何一个Jar包都会导致项目编译失败。Maven 能帮助我们下载及管理依赖。 本地项目代码开发完成后&#xff0c;我…

如何在华为OD机试中获得满分?Java实现【字母组合】一文详解

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

Android:如何从源码编译OpenCV4Android库

原文摘自知乎网友稚晖的文章《如何从源码编译OpenCV4Android库》 https://blog.csdn.net/LateLinux/article/details/111149544 我在这里根据自己的经验&#xff0c;增加一些备注。 1.需要的工具和源码&#xff1a; opencv4.1&#xff08;opencv4.6也可以编译通过&#xff09…

跟随林曦,做自己的“生活家”

时代在以加速度的方式变化&#xff0c;让人难以从容。而当我们陷于横向的比较系统&#xff0c;权衡着卷、躺时&#xff0c;也有人在探寻另一条纵向的路——向古人学习&#xff0c;以传统美学关照和滋养当下生活。      立夏之际&#xff0c;水墨画家林曦的新作《无用之美》…

数据结构【链表】看完还怕拿不下链表?

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…

推荐5款提高生活和工作效率的好帮手

在这个数字化时代,软件工具已经深深地影响和改变了我们的生活和工作。有着各种各样的软件工具,它们都可以在特定的领域内让我们变得更加高效,完成复杂的任务。选择一款适合你的软件工具,不但可以极大地释放生产力,也可以让生活变得更加便捷。 1.桌面图标管理工具——TileIconi…

阿里开源!集成了 AIGC 的免费数据库工具:Chat2DB

今天推荐的这个项目是「Chat2DB」&#xff0c;一款开源免费的数据库客户端工具&#xff0c;支持 Windows、Mac 本地安装&#xff0c;也支持服务器端部署&#xff0c;Web 网页访问。 和传统的数据库客户端软件 Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力&#xff0c;能…

基于LLMs的多模态大模型(PALM-E,ArtGPT-4,VPGTrans )

这个系列已经更文一些了&#xff0c;如果有新的文章会继续补充&#xff1a; 基于LLMs的多模态大模型&#xff08;Visual ChatGPT&#xff0c;PICa&#xff0c;MM-REACT&#xff0c;MAGIC&#xff09;基于LLMs的多模态大模型&#xff08;Flamingo, BLIP-2&#xff0c;KOSMOS-1&…

2023年DAMA-CDGA/CDGP认证合肥/厦门/长春/深圳可以报名

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…