Switch (lv_switch)¶
Overview¶
The Switch looks like a little slider and can be used to turn something on and off.
Parts and Styles¶
LV_PART_MAIN
The background of the switch uses all the typical background style properties.padding
makes the indicator smaller in the respective direction.LV_PART_INDICATOR
The indicator that shows the current state of the switch. Also uses all the typical background style properties.LV_PART_KNOB
A rectangle (or circle) drawn at left or right side of the indicator. Also uses all the typical background properties to describe the knob(s). By default the knob is square (with a optional corner radius) with side length equal to the smaller side of the slider. The knob can be made larger with thepadding
values. Padding values can be asymmetric too.
Usage¶
Change state¶
When the switch is turned on it goes to LV_STATE_CHECKED
. To get the current satte of the switch use lv_obj_has_state(switch, LV_STATE_CHECKED)
.
To manually turn the switch on/off call lvobj_add/clear_state(switch, LV_STATE_CHECKED)
.
Keys¶
LV_KEY_UP/RIGHT
Turns on the sliderLV_KEY_DOWN/LEFT
Turns off the sliderLV_KEY_ENTER
Toggles the switch
Learn more about Keys.
Example¶
C¶
Simple Switch¶
code view on GitHub
#include "../../lv_examples.h"
#if LV_USE_SWITCH && LV_BUILD_EXAMPLES
static void event_handler(lv_event_t * e)
{
lv_event_code_t code = lv_event_get_code(e);
lv_obj_t * obj = lv_event_get_target(e);
if(code == LV_EVENT_VALUE_CHANGED) {
LV_LOG_USER("State: %s\n", lv_obj_has_state(obj, LV_STATE_CHECKED) ? "On" : "Off");
}
}
void lv_example_switch_1(void)
{
lv_obj_set_flex_flow(lv_scr_act(), LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_align(lv_scr_act(), LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
lv_obj_t * sw;
sw = lv_switch_create(lv_scr_act());
lv_obj_add_event_cb(sw, event_handler, LV_EVENT_ALL, NULL);
sw = lv_switch_create(lv_scr_act());
lv_obj_add_state(sw, LV_STATE_CHECKED);
lv_obj_add_event_cb(sw, event_handler, LV_EVENT_ALL, NULL);
sw = lv_switch_create(lv_scr_act());
lv_obj_add_state(sw, LV_STATE_DISABLED);
lv_obj_add_event_cb(sw, event_handler, LV_EVENT_ALL, NULL);
sw = lv_switch_create(lv_scr_act());
lv_obj_add_state(sw, LV_STATE_CHECKED | LV_STATE_DISABLED);
lv_obj_add_event_cb(sw, event_handler, LV_EVENT_ALL, NULL);
}
#endif
MicroPython¶
No examples yet.