1、Image组件加载的图片,如何缓解图片在缩放时的锯齿问题
设置图片的插值效果属性Image中的interpolation,即缓解图片在缩放时的锯齿问题。
2、Image组件如何加载网络图片
具体实现可参考联盟官网中的示例2。加载网络图片时,默认网络超时是5分钟,建议使用alt配置加载时的占位图。使用网络图片时,需要申请权限ohos.permission.INTERNET。
3、如何在可滚动的容器组件中实现曝光埋点
-
组件可见范围占比可以使用onVisibleAreaChange事件来监听组件可见区域变化事件。
-
停止滑动在scroll组件中有onScrollStop事件,可以获取组件的滑动状态scroll事件。
-
组件的布局改变可以使用onAreaChange事件来监听组件区域变化事件。
4、如何给UI组件设置不同情况下的属性
可以使用if/else条件渲染,对不同情况下的组件属性值进行设置。
5、如何获取组件宽高和组件在屏幕上的位置
方法一:可以通过getInspectorByKey获取指定id组件的所有属性,getInspectorByKey的返回结果是组件属性列表的JSON字符串,解析字符串后获取其rect属性,rect属性是一个长度为2的数组,数组的第一个值是组件左上角的坐标,第二个值是组件右下角的坐标,因此我们也可以获取组件的中心坐标和组件的长宽。例如:"$rect":"648.00, 262.00" ,它代表组件左上角到屏幕左边的距离为648px,到屏幕顶部的距离为262px,组件的宽可以通过 696-648 = 48px得出。
方法二:在组件尺寸发生变化时,需要使用onAreaChange可以响应由布局变化所导致的组件大小、位置发生变化时的回调,其中newValue返回目标元素变化之后的宽高以及目标元素相对父元素和页面左上角的坐标位置。
6、路由实现动态页面的跳转方案
可以在跳转之前,获取到实际要跳转的页面路径,然后替换掉路径。
7、router和Navigation的技术选择、推荐使用场景和演进策略是什么
-
在不涉及复杂动效、交互、多级路由等场景时,可以使用router。
-
但考虑到应用当前或以后可能出现的复杂场景,以及整体交互体验的一致,推荐使用Navigation,Navigation可以完全替换router的能力。
-
后续router的策略是不演进,但现有能力会继续维护。后续对路由能力的增强需求在Navigation上持续构建。
8、RichEditor组件如何设置光标的起始位置位于左上角
可以通过align属性传入参数Alignment.TopStart,来设置光标位置位于左上角。
9、如何在自定义函数中创建一个UI组件
可以使用@Builder装饰器,也称为“自定义构建函数”。自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用。
10、如何实现软键盘弹出后,整体布局不变
通过expandSafeArea属性把组件扩展其安全区域,使页面整体布局保持不变。
11、如何解决Web与List的嵌套滑动冲突
可以使用触摸测试控制来规避此种情况。
12、如何解决两层Tabs出现滑动冲突的情况
通过给外层Tabs设置scrollable(false)实现两层Tabs嵌套底部导航+顶部导航的组合。
13、如何主动清除控件的焦点
当某组件处于获焦状态时,将其的focusable属性或enabled属性设置为false,会自动使该组件失焦,然后焦点按照走焦规则将焦点转移给其他组件。
14、ArkUI是否支持emoji表情输入
通过RichEditor组件加自定义键盘实现emoji表情输入。
15、如何选择图文混排的实现方案
-
轻量级Span&ImageSpan图文混排:可通过Text组件中嵌套ImageSpan子组件和Span子组件的方式,实现图文混排的方案。
-
富文本RichEditor支持图文混排和文本交互式编辑,通过addTextSpan()方法添加文本内容,通过addImageSpan()方法添加图片内容。
16、瀑布流场景的推荐实现方案
ArkUI提供了瀑布流容器组件。由“行”和“列”分割的单元格所组成,通过容器自身的排列规则,将不同大小的“项目”自上而下,如瀑布般紧密布局。
17、如何实现分组列表的吸顶/吸底效果
可通过List组件的sticky属性配合ListItemGroup组件来实现。通过给List组件设置sticky属性为StickyStyle.Header/StickyStyle.Footer。
更多详情查看:文档中心