首页 > 其他分享 >【快应用】响应式布局适配横竖屏或折叠屏

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

时间:2023-05-26 15:22:04浏览次数:39  
标签:orientationMap orientation color 适配 横竖 list 宽度 折叠

 【关键词】

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

 

【问题背景】

当前开发者在开发快应用时,往往将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

标签:orientationMap,orientation,color,适配,横竖,list,宽度,折叠
From: https://www.cnblogs.com/developer-huawei/p/17434834.html

相关文章

  • OpenHarmony支持HDMI接口声卡适配说明
    高清多媒体接口(High Definition Multimedia Interface,HDMI  )是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视、游戏主机、综合扩大机、数字音响与电视机等设备。HDMI可以同时发送音频和视频信号,由于音频和视......
  • OpenHarmony支持HDMI接口声卡适配说明
     高清多媒体接口(High Definition Multimedia Interface,HDMI  )是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视、游戏主机、综合扩大机、数字音响与电视机等设备。HDMI可以同时发送音频和视频信号,由于......
  • 适配器模式改造Servlet
    1. 我们编写一个Servlet类直接实现Servlet接口有什么缺点?  11  - 我们只需要service方法,其他方法大部分情况下是不需要使用的。代码很丑陋。2. 适配器设计模式Adapter   11  - 手机直接插到220V的电压上,手机直接就报废了。怎么办?可以找一个充电器。这个充电器就是一个......
  • pc移动端适配问题
    TL;DR近期在做一个移动端的web网页,当中选用了vw自适应适配方案。然而从设计图标注的px转换到vw是个麻烦事,作为程序员的我很抗拒人工计算,因为那样做CSS代码的可读性会变低,而且编码效率也很低。经过实践我找出了以下几种解决方案,这里列举出来希望对同样患懒癌的你有些许帮助:0.Sas......
  • idea与maven的版本适配问题
    idea对于使用的maven具有兼容性问题如果出现以下错误java.lang.RuntimeException:org.codehaus.plexus.component.repository.exception.ComponentLookupException:com.google.inject.ProvisionException:Unabletoprovision,seethefollowingerrors:1)[Guice/ErrorIn......
  • 聊一聊适配器模式
    接口不能用?行,我帮你适配一、概述适配器模式(Adapter),是23种设计模式中的结构型模式之一;它就像我们电脑上接口不够时,需要用到的拓展坞,起到转接的作用。它可以将新的功能和原先的功能连接起来,使由于需求变动导致不能用的功能,重新利用起来。上图的Mac上,只有两个typec接口,当我们需......
  • 适配器模式
    目录适配器模式概述结构类适配器模式对象适配器模式应用场景JDK源码解析适配器模式概述如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当......
  • 阿里图标库批量下载iOS适配的图标
    没有UI设计师精湛的技艺,很难设计出符合业务场景的图标,作为开发,确实拙计。练手的项目可以完全可以降低标准,不必达到看图识意,生产上在再请专业UI出图也不失是一个好的方案。阿里巴巴矢量图标库,就给了我们极大方便,......
  • openEuler 成功适配 LeapFive InFive Poros 开发板
    近日,openEulerRISC-V23.03创新版本在跃昉科技的Poros开发板上成功运行。openEuler在Poros上适配成功,XFCE桌面启动正常,文件系统、终端模拟器和输入法等相关GUI应用也运行流畅,Chromium浏览器和LibreOffice等应用也得到了支持。目前,图形界面依靠LLVMpipe渲染,后续跃昉......
  • openEuler RISC-V 成功适配 LicheePi 4A 开发板,推动 RISC-V 生态发展
    近期,RISC-VSIG在LicheePi4A开发板上成功实现了欧拉操作系统的适配。目前,最新版本的openEulerRISC-V23.03V1镜像已在LicheePi4A开发板上可用,这一成果再次展现了openEuler在推动RISC-V生态发展过程中所取得的新突破。下载地址:https://mirror.iscas.ac.cn/openeuler-......