【HarmonyOS NEXT】FAQ之应用框架(ArkUI-14)

1、如何实现不关闭弹窗的情况下,跳转页面,并且返回时弹窗存在?
  • 自定义弹窗物理返回的拦截,可以通过给自定义弹窗参数添加onWillDismiss函数。

  • 当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。

  • 在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。

2、如何实现带图片的二维码效果?

可以通过stack布局,将image组件放在qrcode组件上实现,Image的叠加不会影响QRCode的识别。

3、Scroll中嵌套List,可否设置事件响应顺序,让List不响应滚动事件,让外层的Scroll滚动整个布局?

Scroll嵌套List的时候,如果List默认不设置高度是会默认全部展开的,可以实现Scroll滚动整个布局的效果,但是要注意这样会失去懒加载效果,推荐使用List组件的nestedScroll属性来实现嵌套滚动效果。

4、如何清除输入框焦点?

可以使用FocusController的clearFocus方法来清除焦点并关闭软键盘,示例代码如下:

 this.getUIContext().getFocusController().clearFocus()

5、HarmonyOS的安全控件能否放在屏幕边缘

安全控件不能放到屏幕边缘,如果超出屏幕范围一点也会失败。

6、安全控件savebutton能自定义图标吗

目前策略是不支持自定义图标。

7、如何获取组件渲染完成时间

可以通过@kit.ArkUI.inspector(布局回调)接口获取绘制完成回调的通知。在aboutToAppear中记录开始的时间,在listener中监听绘制完成的回调中获取绘制完成的时间。得到的时间差就是组件渲染时间。

8、Toggle组件设置拖动的同时如何屏蔽其本身的点击手势

需要控制Toggle组件传入的默认值,自定义一个toggleIsOn的状态变量,然后在onChange回调里面控制改变其的值。

9、在使用Video组件时,为Video添加本地视频播放源后,立刻播放,为什么会播放失败?

从给Video加载资源到Video播放中间必须要加载,这个加载需要耗时,可以将开始播放的逻辑写到Video组件的onPrepared回调函数里,等资源准备完毕后,自动播放。

10、如何通过路由的方式打开半屏

统一使用组件导航(Navigation)的形式去操作,组件导航里面参考页面显示类型的弹窗类型(NavDestinationMode.DIALOG)。

11、如何识别双击手势时忽视单击手势?

使用组合手势GestureGroup的互斥识别模式。双击事件需放在单击事件前面,互斥识别是按排列顺序来识别,如果单击事件放前面则只会识别到单击事件。

12、异步是否对主线程有影响

setInterval是异步的,是否影响主线程,要看setInterval的callback中做了什么,如果仅是少量数据处理,影响较小;如果是大量数据处理,建议使用worker或taskpool;如果是给页面显示的数据重新赋值,过于频繁的确会影响主线程,因为绘制是在主线程处理的。

13、Grid onItemDragStart默认时间设置替代方案、以及多列GridItem实现通用示例

Grid设置拖动时onItemDragStart默认时间是170毫秒,目前无法设置onItemDragStart的时间,可以通过自定义Grid,设置长按手势LongPressGesture中的duration时长,来实现控制GridItem拖拽的长按触发时间功能。

14、绑定类型的组件和ForEach的正确连用方式

bindSheet和foreach合用的问题,$$this.isShow会弹出两次半模态,如果是this.isShow,则半模态弹出的次数是数组的长度数,如何在某一个foreach中的item点击的时候只弹出一个弹窗。

给每一个弹窗都绑定一个@State修饰的变量。

15、如何实现修改字体大小,APP内的字体不受影响。修改显示大小,这个时候APP内的字体受影响?

vp单位跟显示大小绑定,fp单位跟字体大小绑定,可将fontSize单位全部转化为vp单位,此时修改字体大小,APP内的字体不受影响。修改显示大小,这个时候APP内的字体受影响。

16、如何使用canvas绘制圆角矩形

利用CanvasRenderingContext2D对象的arc绘制弧形路径,结合lineTo方法绘制直线

更多详情查看:文档中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值