记录一些注意事项。

1.标签部件label

慎用lv_label_set_text_static(label, "hello");,此时文本“hello”不在动态内存,而在指定的缓冲区中,为只读状态。

如果试图改变文本,将引发错误。如:

1
2
3
//错误代码
lv_label_set_text_static(label, "hello hello hello hello");
lv_label_set_long_mode(label, LV_LABEL_LONG_DOT); // 试图将最后面的字符变成 ... ,而文字为只读状态,这样将引发错误。

2.按钮部件btn

1
2
lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);
lv_obj_add_event_cb( btn, event_cb, LV_ENENT_VALUE_CHANDED, NULL);

原因:状态LV_ENENT_VALUE_CHANDED用于指定检测按钮的值是否发生变化,而想要如此必须先开启按钮状态的切换:lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);,否则检测不到这个值的变化。

结论:检查LV_ENENT_VALUE_CHANDED,必先lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);

3.开关部件switch

改变指示器(LV_PART_INDICATOR)部分的颜色需要注意:

1
lv_obj_set_style_bg_color(switch1, lv_color_hex(0xdf5345), LV_STATE_CHECKD | LV_PART_INDICATOR);

一定需要添加LV_STATE_CHECKD,否则设置不生效。