鸿蒙(ArkTS)—ArkUI布局开发常见问题

650 篇文章 7 订阅
645 篇文章 7 订阅

使用position之后height不生效(API 9)

解决措施

容器组件在使用position之后会脱离文本流,导致容器脱离外层容器束缚,导致height不生效,可以将外层容器换成Stack可以解决这个问题。

Grid组件如何实现横向滚动(API 9)

将Grid组件设置当前网格布局行数rowsTemplate且不设置列数,当内容超出Grid组件宽度时,Grid可横向滚动进行内容展示。

List组件与其他组件并列使用时,若未设置List滚动方向上的尺寸,无法拖动到底部(API 9)

给List加上layoutWeight属性,设置列表自适应占满剩余高度。原理:List属于可滚动容器组件,默认高度是占满全屏幕高度,当出现其他固定高度的组件占领了屏幕的部分高度时,需要开发人员显性的指定List组件占满剩余高度,而不是全屏幕高度。

Tabs组件在点击Tab项时是否支持禁止切换(API 9)

不支持。

如何拦截住onBackPress事件,不触发页面返回(API 9)

在onBackPress中返回true表示页面自己处理返回逻辑,不会执行默认的返回逻辑。

List组件怎么实现分组列表的粘性标题效果(API 9)

可以通过List组件的sticky属性配合ListItemGroup组件来实现。通过给List组件设置sticky属性为StickyStyle.Header,设置ListItemGroup中header参数对应的头部组件呈现粘性标题效果

键盘弹出时如何只让指定UI组件进行上移,而不是整体布局(API 10)

解决措施

键盘弹出时的避让可以利用安全区域接口expandSafeArea进行UI逻辑避让控制。

有哪些实现图文混排的方式,每种方式的优劣点是什么,推荐场景是什么(API 10)

解决措施

1、如果做页面展示,可通过Text嵌套ImageSpan或者容器组件如Row、Colunm下嵌套Text&Image组件,推荐前者;

2、如果要进行编辑,可使用RichEditor控件。

如何实现协调布局的效果(API 10)

解决措施

可滚动类组件可以使用nestedScroll属性设置嵌套滚动。

如何解决sidebar侧边栏出现时,遮挡住下方的导航栏的问题(API 10)

解决措施

将被遮挡的导航栏作为SideBarContainer组件的第二个子组件使用,使其成为内容区的一部分,SideBarContainer的侧边栏只会遮挡内容区自身宽度的部分,其余部分可以正常看到。

如何解决使用foreach&lazyforeach循环渲染时,会出现更改数据源时,界面不刷新的问题(API 10)

解决措施

如果缺省keyGenerator,框架会自动基于item和index生成key, 如果函数缺省,框架默认的键值生成函数为(item: T, index: number) => { return index + ‘__’ + JSON.stringify(item); }, 修改状态变量数据源时,ForEach或LazyForEach会捕捉到key的变化,从而通过重建组件节点来刷新。

CustomDialog,Popup等弹窗如何与页面解耦,最佳实践是什么样的(API 10)

解决措施

弹框类组件需要绑定到对应组件上,由事件触发。对于内容可以使用全局builder,只需定义一次。

全局builder:

定义的语法:

@Builder function MyGlobalBuilderFunction(){ … }

使用方法:

MyGlobalBuilderFunction()

全局的自定义构建函数可以被整个应用获取。如果不涉及组件状态变化,建议使用全局的自定义构建方法。

参考链接

  1. 自定义弹窗(CustomDialog)
  2. Popup控制
  3. @Builder装饰器:自定义构建函数

为什么两个紧挨着的相同颜色的控件之间会有白线、暗线。如何解决(API 11)

解决措施

白线、暗线通常是因为相邻的同色控件边界落在了浮点数坐标上,图形层做了抗锯齿处理,视觉上产生了一条白线或暗线。可以通过pixelRound通用属性设置, 使产生白线、暗线两侧的组件边界对齐到整数像素坐标上。

使用方法:

Flex(){
    Column().height('30%').width('30%').backgroundColor(Color.Blue)
        .pixelRound({end: PixelRoundCalcPolicy.FORCE_CEIL})
    Column().height('30%').width('30%').backgroundColor(Color.Blue)
    Column().height('30%').width('30%').backgroundColor(Color.Blue)
}
ts

参考链接 布局约束

了解目前还有很多小伙伴不知道学习鸿蒙需要重点掌握哪些核心要领?


为了帮助大家更深入有效的学习到鸿蒙开发知识点,我特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源, 内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

如果你是一名Android、Java、前端等开发人员、或是刚开始学习鸿蒙开发。想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙星河版学习路线+学习文档+面试题←点击领取,下面是鸿蒙开发的学习路线图。

应用开发中级就业技术

 应用开发中高级就业技术

南北双向高工技能基础

 全网首发-工业级 南向设备开发就业技术

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等.....视频教程

鸿蒙生态应用开发白皮书V2.0PDF:

获取完整版白皮书方式请点击鸿蒙生态应用开发白皮书V2.0PDF

以下也为大家准备了针对鸿蒙成长路线打造的鸿蒙学习文档。《鸿蒙开发学习手册》(共计890页)鸿蒙开发资料等…希望对大家有所帮助:

鸿蒙 (Harmony OS)开发学习手册

一、入门必看

  1. 应用开发导读(ArkTS)
  2. ……

二、HarmonyOS 概念

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全
  5. ........

三、如何快速入门?

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

四、开发基础知识

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

五、基于ArkTS 开发

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

更多了解更多鸿蒙开发的相关知识可以参考:鸿蒙星河版学习路线+学习文档+面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值