组件多了一个蓝色边框不消失问题分析报告
1 关键字 组件;蓝色边框; 2 问题描述 开发板型号:wanger平板 OH版本:OpenHarmony 3.2.3.5 问题现象:Button多了一个蓝色边框不消失 测试步骤: 安装视频应用; 点击视频应用,此时【所有视频】按钮没有蓝色边框,点击播放任意一个视频后,返回到视频缩列图页面; 查看【所有视频】上有一个蓝色边框,切换到最近播放之后,蓝色边框仍存在; 3 问题原因 3.1 正常机制
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)