当前位置: 首页 > wzjs >正文

长春网站开发培训价格设计wordpress主题

长春网站开发培训价格,设计wordpress主题,硬件开发方案,建设网站租用空间harmony OS NEXT-沉浸式布局实现笔记 沉浸式布局核心原理 产生白边问题的原因 区域类型分辨率安全区偏移量系统组件状态栏1280*60pxTOP: 60vp电池、信号、时间等手势条区域1280*120pxBOTTOM: 48vp返回手势指示条 方法一:窗口全局全屏 安全区动态适配 1. 启用全…

harmony OS NEXT-沉浸式布局实现笔记

沉浸式布局核心原理

产生白边问题的原因

区域类型分辨率安全区偏移量系统组件
状态栏1280*60pxTOP: 60vp电池、信号、时间等
手势条区域1280*120pxBOTTOM: 48vp返回手势指示条

方法一:窗口全局全屏 + 安全区动态适配

1. 启用全屏模式

// entryability/EntryAbility.ts
import window from '@ohos.window';export default class EntryAbility extends Ability {async onWindowStageCreate(windowStage: window.WindowStage) {try {const win = await windowStage.getMainWindow();await win.setWindowLayoutFullScreen(true); // 启用全屏布局this.setupAvoidAreaListeners(win); // 安全区变化监听} catch (err) {console.error('全屏模式设置失败:', err);}}private setupAvoidAreaListeners(win: window.Window) {win.on('avoidAreaChange', (area: window.AvoidArea) => {AppStorage.setOrCreate<AvoidAreaModel>('avoidArea', new AvoidAreaModel(area.topRect, area.bottomRect));});}
}

2. 安全区数据模型

// model/AvoidAreaModel.ts
export class AvoidAreaModel {topHeight: number = 0; // VP单位bottomHeight: number = 0;constructor(topRect: rectangle.Rect, bottomRect: rectangle.Rect) {this.topHeight = px2vp(topRect.height);this.bottomHeight = px2vp(bottomRect.height);}
}

3. UI层安全区适配组件

// components/SafeAreaContainer.ets
@Component
struct SafeAreaContainer {@StorageLink('avoidArea') avoidArea: AvoidAreaModel = new AvoidAreaModel();build() {Column() {// 自定义内容通过slot插入Slot()}.padding({ top: this.avoidArea.topHeight,bottom: this.avoidArea.bottomHeight }).backgroundColor(Color.Transparent).onAppear(() => {this.checkAvoidAreaValidity();})}private checkAvoidAreaValidity() {if (this.avoidArea.topHeight === 0) {console.warn('安全区高度未正确初始化,请检查window监听');}}
}

方法二:组件级区域控制(推荐方案)

1. 整合安全区功能的装饰器

// decorators/WithSafeArea.ts
export function WithSafeArea<T extends Object>(WrappedComponent: new () => T) {@Componentstruct WrapperComponent {@State avoidArea: AvoidAreaModel = AppStorage.get('avoidArea');async aboutToAppear() {this.updateAvoidArea(); // 初次加载获取当前安全区}private async updateAvoidArea() {try {const win = await window.getTopWindow();const area = await win.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM);this.avoidArea = new AvoidAreaModel(area.topRect, area.bottomRect);} catch (error) {console.error('安全区获取失败:', error);}}build() {Column() {WrappedComponent()}.padding({top: this.avoidArea.topHeight,bottom: this.avoidArea.bottomHeight})}}return WrapperComponent;
}

2. 使用示例

@Entry
@WithSafeArea
struct HomePage {build() {Column() {Text('主内容区域').fontSize(20).fontColor(Color.White)}.width('100%').height('100%').backgroundColor('#FF409EFF')}
}

方案对比与最佳实践

对比维度全局窗口方案组件级方案
性能消耗中等(全局监听)低(按需加载)
代码侵入性高(需修改Ability)低(装饰器模式)
动态更新支持自动响应需手动刷新
多窗口场景支持部分支持完全支持
推荐应用场景全App沉浸式风格统一特定页面定制化需求

开发建议:

  1. 在API version ≥ 9时优先使用window.getWindowAvoidArea接口

  2. 涉及横竖屏切换时添加防抖处理:

    let resizeTimer: number = 0;win.on('windowSizeChange', () => {  clearTimeout(resizeTimer);  resizeTimer = setTimeout(() => this.updateAvoidArea(), 300);});
    
  3. 在原子化服务场景中应与enterFullScreen方法结合使用


文章转载自:

http://kcXvPR8m.dbhnx.cn
http://fF3yT31B.dbhnx.cn
http://NxFamdBC.dbhnx.cn
http://5wKXVJ3r.dbhnx.cn
http://3wqAxMnC.dbhnx.cn
http://jqof2WJE.dbhnx.cn
http://OktkLDts.dbhnx.cn
http://qnCWt0og.dbhnx.cn
http://0DeLeFcf.dbhnx.cn
http://ddjjWm5X.dbhnx.cn
http://SpoWot2l.dbhnx.cn
http://6U53wPRN.dbhnx.cn
http://kkbW9SGu.dbhnx.cn
http://t8mnYb9C.dbhnx.cn
http://9vM4bH9o.dbhnx.cn
http://NMhJQ3PJ.dbhnx.cn
http://eGzc69km.dbhnx.cn
http://aPURDTCG.dbhnx.cn
http://4TTvlhCO.dbhnx.cn
http://OBIyO86K.dbhnx.cn
http://YtSy1ZU3.dbhnx.cn
http://C5yGRua5.dbhnx.cn
http://cm2uuMhy.dbhnx.cn
http://Ic0uuXQn.dbhnx.cn
http://hnpg11t0.dbhnx.cn
http://HXuITySE.dbhnx.cn
http://7kkoJgbQ.dbhnx.cn
http://t1lUsJst.dbhnx.cn
http://3JFir8Zl.dbhnx.cn
http://tbo4Nvhx.dbhnx.cn
http://www.dtcms.com/wzjs/739732.html

相关文章:

  • 免费h5页面制作平台有哪些温州做网站优化
  • 做网站赚多少海南专业网站建设
  • 安徽省建设厅网站职称申报都有哪些可以做app的网站
  • 徐州市徐州市城乡建设局网站免费在线咨询软件
  • 怎么什么软件可以吧做网站wordpress模板放
  • 打开网站自动跳转代码wordpress最好的页面编辑器
  • 做平面设计买哪个素材网站会员免费站推广网站2022
  • 园林景观效果图网站电商培训大概多少学费
  • 洛阳网站备案商洛免费做网站公司
  • 做旅游项目用哪家网站好访问网站 过程
  • 黑龙江网站备案查询高端网站设计一般多少钱
  • 网站建设纯免费官网湖南长沙网站制作
  • 网站在百度突然搜不到了机房建设网站模板
  • 负责网站建设推广广告推广的软件
  • 如何搭建视频网站武隆网站建设联系电话
  • 网站建设色调的localhost wordpress
  • 内部建设网站需要什么条件网站建设需求表模板
  • asp 网站后台展厅展馆设计公司简介
  • 网站开发技术方案模板产品设计论文
  • 网站开发的需求分析书wordpress外贸网站建站教程
  • 宁波电商平台网站建设手机网站多少钱一个
  • wordpress sql 查询seo标题优化裤子关键词
  • 徐州提供网站建设报价表做网站准备什么软件
  • 公司网站制作需要多少钱义乌万户网络技术
  • 手机网站建设免费空间河北建设厅网站技术电话
  • 宝山区建设用地事务所网站精准客户运营推广
  • 营销型网站的建设软文网站建设如何上传文件
  • 域名备案关闭网站吗关于做网站
  • 大规模301让网站快速排名网站建设 作用
  • 分析网站示例网站建设的杂志