按钮切换
//输入事件
lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_KEYPAD;
indev_drv.read_cb = evdev_read;
lv_indev_t *indev_t = lv_indev_drv_register(&indev_drv);
//三个按钮
lv_btn_t *b1 = lv_btn_create(lv_scr_act());
lv_btn_t *b2 = lv_btn_create(lv_scr_act());
lv_btn_t *b3 = lv_btn_create(lv_scr_act());
//三个按钮添加到同一个组
lv_group_t *group_page1 = lv_group_create();
lv_group_add_obj(group_page1,b1);
lv_group_add_obj(group_page1,b2);
lv_group_add_obj(group_page1,b3);
//设置组和输入事件绑定
lv_indev_set_group(indev_t, group_page1);
按钮事件映射
static uint32_t key_map(uint16_t code)
{
switch (code) {
case KEY_W: return LV_KEY_PREV; //上一个
case KEY_S: return LV_KEY_NEXT; //下一个
case KEY_A: return LV_KEY_ENTER; //确定
case KEY_D: return LV_KEY_ESC; //返回/取消
default: return 0; /* 不关心的按键 */
}
}