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方法绘制直线
更多详情查看:文档中心