首页 > 其他分享 >响应式布局mediaquery使用,鸿蒙NEXT星河版

响应式布局mediaquery使用,鸿蒙NEXT星河版

时间:2024-06-16 21:29:50浏览次数:28  
标签:Slot landRes 星河 NEXT 横屏 LandType isLandScape mediaquery

一、导入方法,定义响应式接口

// 组件的封装
import mediaquery from '@ohos.mediaquery'

export interface LandType {
  isLandScape: boolean
}

二、监听当前是否是横屏状态

  // 监听当前是否是横屏状态
  @State landRes:LandType = {
    isLandScape:false
  }

  listener:mediaquery.MediaQueryListener = mediaquery.matchMediaSync('(orientation: landscape)')

  aboutToAppear(){
    this.listener.on('change', (mediaQueryResult: mediaquery.MediaQueryResult)=>{
      // 打印横屏状态
      // mediaQueryResult.matches  true 横屏状态  false 竖屏状态
      this.landRes.isLandScape = mediaQueryResult.matches
    })
  }

三、接收外部传入模版参数

  // 接收外部传入的UI模版参数
  @Builder defaultSlot(){}

  @BuilderParam
  Slot:(landRes:LandType)=>void = this.defaultSlot

  build() {
    // 这里因为传递的state简单类型 true/false 而不是响应式的状态
    this.Slot(this.landRes)
  }

四、测试调用

@Entry
@Component
struct Test {
  @Builder
  textBuilder(landRes:LandType){
    Text(landRes.isLandScape.toString())
  }

  build() {
    Row(){
      CheckOrientation({
        Slot:(landRes)=>{
          this.textBuilder(landRes)
        }
      })
    }
  }
}

标签:Slot,landRes,星河,NEXT,横屏,LandType,isLandScape,mediaquery
From: https://blog.csdn.net/xp1870069025/article/details/139726708

相关文章

  • ArkTS本地化数据库SqlLight使用,鸿蒙NEXT星河版API(11)
    RelationalStore提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。谓词:数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。结果......
  • Vue基础知识:异步DOM更新是什么?$nextTick是什么?到底应该如何使用。什么是同步?什么是异
    要先了解异步dom更新是什么就必须先了解,什么是同步?什么是异步?1.什么是同步?什么是异步?同步(Synchronous):同步操作是按照代码的顺序执行的,每个操作都必须等待上一个操作完成后才能执行。在Vue中,同步操作通常指的是直接执行的代码,例如在方法中执行的普通JavaScript代码或同步......
  • 国思RDIF.vNext全新低代码快速开发框架平台6.1版本发布(支持vue2、vue3)
    1、平台介绍RDIF.vNext,全新低代码快速开发集成框架平台,给用户和开发者最佳的.Net框架平台方案,为企业快速构建跨平台、企业级的应用提供强大支持。RDIF.vNext的前身是RDIFramework框架,RDIF(RapiddevelopIntegrateFramework,vNext代表全新下一代),全新设计,全新开发,代码量减......
  • 组长:你熟悉过React,开发个Next项目模板吧,我:怎么扯上关系的?
    组长:你熟悉过React,开发个Next项目模板吧,我:怎么扯上关系的?最近工作安排我开发一个Next.js项目模板,心里默笑,React用得少得都快忘光了,现在得搞Next?虽然我曾是React的老用户,但转投Vue阵营已久,React的点点滴滴早已一干二净。不过,挑战归挑战,规矩还得照做。我们通常会用内部工具来搭......
  • Chat-Next-Web部署自己专属的ChatGPT服务对话平台
    Chat-Next-Web部署自己专属的ChatGPT服务对话平台文章目录Chat-Next-Web部署自己专属的ChatGPT服务对话平台导语:需要用到的链接汇总1、github项目直达地址2、vercel服务器直达地址3、Cloudflare加速地址一、Github项目`star`+Vercel部署1、访问进去GitHub项......
  • [干货][HarmonyOS NEXT]鸿蒙中除了这些还有哪些装饰器呢?
    @Entry:将结构体标记为页面组件,代表一个完整的页面。@Component:将结构体标记为可复用的组件。@Preview:让组件能够在开发过程中进行预览。@State:用于定义组件内部的响应式状态变量需给初始值@Prop:实现父组件到子组件的数据单向传递。可以给初始值也可以不给@Link:达成父组件......
  • 一键快速部署:Chat-Next-Web自己专属的ChatGPT服务对话平台
    一键快速部署:Chat-Next-Web自己专属的ChatGPT服务对话平台文章目录一键快速部署:Chat-Next-Web自己专属的ChatGPT服务对话平台导语:需要用到的链接汇总1、github项目直达地址2、vercel服务器直达地址3、Cloudflare加速地址一、Github项目`star`+Vercel部署1、......
  • WebviewController进行混合开发,鸿蒙星河版API(11)
    @ohos.web.webview提供web控制能力,web组件提供网页显示的能力,同时也可以执行网页中定义的JS方法。一、第一步创建WebviewController实例controller:WebviewController=newwebview.WebviewController()二、web组件加载html文件build(){Navigation(){Col......
  • 【鸿蒙】---鸿蒙Next小课堂之Promise
    前言Promise是一种用于处理异步操作的对象,可以将异步操作转换为类似于同步操作的风格,以方便代码编写和维护。简而言之:Promise用来管理异步,方便编码。这时候该有人要问了,怎么区分异步和同步呢?同步代码:逐行执行,需原地等待结果后,才继续向下执行。异步代码:调用后耗时,不阻塞......
  • BGP中next-hop-self 小实验
    next-hop-self在EBGP和IBGP边界使用,对ibgp下一跳邻居使用配置命令routerbgp1234neighbor2.2.2.2next-hop-self使用Next-hop-self原因EBGP的路由传进IBGP时,带的下一跳是EBGP的地址。在IBGP中传给下一跳的IBGP路由器时,携带的还是EBGP的地址。由于第二跳的IBGP没有EBGP......