如何更改系统默认的焦点框

不是创建部件的样式,就是在选择各种部件的时候出现选中的框,现在一直默认是蓝色,这个样式在那修改,我觉得是系统源码的东西

这是属于盒子模型部分的知识点,关于这块的说明lvgl官方本身有文档说明,我们百问网也有视频教程:

简单来说就是修改当组件被聚焦时它被修改的样式属性,样式属性的修改要根据盒子模型进行修改,这些在视频课程中有详细的讲解。

PS: 在使用库时不要首先想到修改库代码,除非你有向库作者提交你的issue或PR的能力。

对,在创建btn控件的时候,我把border的属性全设置为 透明度为零,宽度为零 ,在focus的时候还是会有边缘淡蓝色的一个框框

lv_obj_set_style_bg_opa(btn, LV_OPA_0, LV_PART_MAIN | LV_STATE_FOCUSED);试试这个

试过,还是会有,聚焦到按钮上就会出现那个

换成LV_STATE_FOCUS_KEY呢?


试过了还是有这个

你解决了吗?我也有这个问题

应该设置 outline 部分,下面这两行代码的效果是一样的:

lv_obj_set_style_outline_opa(btn, LV_OPA_0, LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_outline_width(btn, 0, LV_PART_MAIN | LV_STATE_FOCUS_KEY);

感谢感谢,就用这两条语句可以解决了

lv_obj_set_style_outline_opa(btn, LV_OPA_0, LV_PART_MAIN | LV_STATE_FOCUS_KEY);
lv_obj_set_style_outline_width(btn, 0, LV_PART_MAIN | LV_STATE_FOCUS_KEY);

用这两条即可

感谢感谢,用这outline可以解决这个问题了