如何获取当前设备的宽度?
我现在在做一次开发多端部署的相关内容,但是例如gridrow里面的breakpoint断点只能在这个组件里使用,无法作为条件语句进行判断。有没有什么参数,能直接获取当前设备的宽度?这样就能根据这个宽度判断是大设备还是小设备了。
UI框架
赞
收藏 0
回答 1
待解决
相关问题
如何获取当前组件的宽度?
290浏览 • 1回复 待解决
如何获取当前窗口的宽度
520浏览 • 1回复 待解决
如何获取当前设备的设备名称
2541浏览 • 1回复 待解决
获取设备屏幕的宽度和高度
644浏览 • 1回复 待解决
如何获取当前设备的品牌名称?
471浏览 • 1回复 待解决
HarmonyOS 如何获取当前设备的 IP 地址
49浏览 • 1回复 待解决
获取当前设备的屏幕方向
498浏览 • 1回复 待解决
如何获取当前设备所在的网络ip
598浏览 • 1回复 待解决
HarmonyOS如何获取设备的逻辑宽度和逻辑高度
471浏览 • 1回复 待解决
获取当前设备类型的方法。
457浏览 • 1回复 待解决
获取当前设备屏幕密度。
402浏览 • 1回复 待解决
设备连接Wi-Fi后,如何获取当前设备的IP地址
2086浏览 • 1回复 待解决
HarmonyOS如何将设备横向布局,即设备的宽度变成高度,高度变成宽度?
271浏览 • 1回复 待解决
鸿蒙os开放如何获取当前设备ip地址?
5292浏览 • 1回复 待解决
HarmonyOS 如何获取组件的宽度
432浏览 • 1回复 待解决
请问如何获取窗口的宽度
1893浏览 • 1回复 待解决
如何获取主窗口window的宽度
1999浏览 • 1回复 待解决
HarmonyOS NEXT 如何获取当前设备网络状态(Wi-Fi/移动数据)?
183浏览 • 0回复 待解决
求大佬告知如何获取窗口的宽度
1720浏览 • 1回复 待解决
如何获取文本的显示宽度和高度?
422浏览 • 1回复 待解决
如何获取单位为vp的屏幕宽度?
257浏览 • 1回复 待解决
HarmonyOS在自定义扫码中,如何获取当前设备的相机焦距区间?
25浏览 • 1回复 待解决
如何获取当前HAP的BundleName?
462浏览 • 1回复 待解决
获取文本Text组件的宽度
502浏览 • 1回复 待解决
#鸿蒙学习大百科#如何获取当前设备时sm,md,lg哪个尺寸的?
280浏览 • 1回复 待解决
在UIAbility中获取并存储为全局变量,然后在页面中获取全局变量。
1.在UIAbility的onWindowStageCreate生命周期回调中,通过窗口对象获取启动时的应用窗口宽度并注册回调函数监听窗口尺寸变化。将窗口尺寸的长度单位由px换算为vp后,即可基于前文中介绍的规则得到当前断点值,此时可以使用状态变量记录当前的断点值方便后续使用。
// MainAbility.ts
import window from '@ohos.window'
import display from '@ohos.display'
import UIAbility from '@ohos.app.ability.UIAbility'
export default class MainAbility extends UIAbility {
private windowObj?: window.Window
private curBp: string = ''
//...
// 根据当前窗口尺寸更新断点
private updateBreakpoint(windowWidth: number) :void{
// 将长度的单位由px换算为vp
let windowWidthVp = windowWidth / display.getDefaultDisplaySync().densityPixels
let newBp: string = ''
if (windowWidthVp < 320) {
newBp = 'xs'
} else if (windowWidthVp < 600) {
newBp = 'sm'
} else if (windowWidthVp < 840) {
newBp = 'md'
} else {
newBp = 'lg'
}
if (this.curBp !== newBp) {
this.curBp = newBp
// 使用状态变量记录当前断点值
AppStorage.setOrCreate('currentBreakpoint', this.curBp)
}
}
onWindowStageCreate(windowStage: window.WindowStage) :void{
windowStage.getMainWindow().then((windowObj) => {
this.windowObj = windowObj
// 获取应用启动时的窗口尺寸
this.updateBreakpoint(windowObj.getWindowProperties().windowRect.width)
// 注册回调函数,监听窗口尺寸变化
windowObj.on('windowSizeChange', (windowSize)=>{
this.updateBreakpoint(windowSize.width)
})
});
// ...
}
//...
}
2.在页面中,获取及使用当前的断点。
@Entry
@Component
struct Index {
@StorageProp('currentBreakpoint') curBp: string = 'sm'
build() {
Flex({justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center}) {
Text(this.curBp).fontSize(50).fontWeight(FontWeight.Medium)
}
.width('100%')
.height('100%')
}
}