组件多了一个蓝色边框不消失问题分析报告
·
1 关键字
组件;蓝色边框;
2 问题描述
开发板型号:wanger平板
OH版本:OpenHarmony 3.2.3.5
问题现象:Button多了一个蓝色边框不消失
测试步骤:
-
安装视频应用;
-
点击视频应用,此时【所有视频】按钮没有蓝色边框,点击播放任意一个视频后,返回到视频缩列图页面;
-
查看【所有视频】上有一个蓝色边框,切换到最近播放之后,蓝色边框仍存在;
3 问题原因
3.1 正常机制
【所有视频】按钮上没有蓝色边框
3.2 异常机制
【所有视频】上有一个蓝色边框,切换到最近播放之后,蓝色边框仍存在;
4 解决方案
在ets中,出现蓝色框的所有组件里加上.focusable(false)属性
5 定位过程
3.2bate版本源码文件路径foundation\arkui\ace_engine\frameworks\bridge\declarative_frontend\jsview\js_button.cpp中
void JSButton::CreateWithLabel(const JSCallbackInfo& info)
{
...
ViewStackProcessor::GetInstance()->Push(buttonComponent);
JSInteractableView::SetFocusable(true);
JSInteractableView::SetFocusNode(true);
...
}
在创建button组件的时候做了 JSInteractableView::SetFocusable(true); 给组件focusable属性设置的true。还有其他的组件如list,web等组件也是在创建的时候focusable属性设置的true
6 知识分享
-
组件的焦点默认值是false,有些组件初始化时设置成true,导致蓝色框出现
更多推荐

所有评论(0)