按钮切换

//输入事件
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;  /* 不关心的按键 */
    }
}