lvgl切换页面

在模拟器实验lvgl8.1的页面切换功能,使用的 是动画的切换,创建两个页面page1和page2,每个页面上都有按钮,点page1上的按钮能平滑过渡到page2,点page2上的按钮平滑过渡到page1后就显示一个白色的空白页面了
代码如下:
void one_btn_event_handler(lv_event_t *e)
{
lv_obj_t * two = lv_event_get_user_data(e);

// 加载屏幕TWO,动画效果为LV_SCR_LOAD_ANIM_FADE_ON,切换时间为100ms,延迟0ms后从第一屏开始切换,切换完成后隐藏屏幕二
lv_scr_load_anim(two, LV_SCR_LOAD_ANIM_MOVE_LEFT, 500, 0, false); 
   LV_LOG_USER("from one to two page : %p,child cnt:%d",two,lv_obj_get_child_cnt(two));

}
void two_btn_event_handler(lv_event_t *e)
{
lv_obj_t * one = lv_event_get_user_data(e);

// 加载屏幕one,动画效果为LV_SCR_LOAD_ANIM_FADE_ON,切换时间为100ms,延迟0ms后从第二屏开始切换,切换完成后隐藏屏幕一
lv_scr_load_anim(one, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 500, 0, false); 
LV_LOG_USER("from two to one page : %p,child cnt:%d",one,lv_obj_get_child_cnt(one));

}

void my_example_page_change_anim(void)
{
lv_obj_t * one = lv_obj_create(lv_scr_act()); //在默认屏上创建obj对象
lv_obj_set_style_bg_color(one,lv_color_hex(0xeeffcc), LV_STATE_DEFAULT); // obj背景色设成黄色
lv_obj_set_size(one, LV_HOR_RES, LV_VER_RES); // 设置到屏幕大小

lv_obj_t * two = lv_obj_create(NULL); // 创建新屏幕但未加载到显示
lv_obj_set_style_bg_color(two,lv_color_hex(0x00d8db), LV_STATE_DEFAULT); // 背影色设成蓝色
lv_obj_set_size(two, LV_HOR_RES, LV_VER_RES); //设置到屏幕大小

lv_obj_t* one_btn = lv_btn_create(one);
lv_obj_align(one_btn, LV_ALIGN_TOP_MID, 0, 20);

 lv_obj_t* label = lv_label_create(one_btn);             // 创建label
 lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);         // label居屏幕中心对齐
 lv_label_set_text(label, "ONE");                    // label显示ONE
 lv_obj_add_event_cb(one_btn, one_btn_event_handler, LV_EVENT_CLICKED, two);

 lv_obj_t* two_btn = lv_btn_create(two);
 lv_obj_align(two_btn, LV_ALIGN_TOP_MID, 0, 20);

 label = lv_label_create(two_btn);                       // 创建label
 lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);         // 居中对齐
 lv_label_set_text(label, "TWO");                    // label上显示TWO
 lv_obj_add_event_cb(two_btn, two_btn_event_handler, LV_EVENT_CLICKED, one);

LV_LOG_USER(“one addr:%p,child cnt:%d”,one,lv_obj_get_child_cnt(one));

LV_LOG_USER(“two addr:%p,child cnt:%d”,two,lv_obj_get_child_cnt(two));

}

这张是从page2到page1的过渡,可以看到已经是白屏了

这张是从page1到page2的过渡

lvgl页面管理我们已经有现成的示例: https://gitee.com/weidongshan/lv_lib_100ask/blob/master/src/lv_100ask_page_manager/README_zh.md

我试了你们的这个lvgl库的页面管理,页面跳转是没问题的,但是我现在想要在页面与页面之间做跟手滑,好像没有这个功能,这个跟手滑请问在你们提供的库基础上可以做么,如果可以做,请问实现思路大概是哪几个步骤

(src/lv_100ask_page_manager/README_zh.md · 韦东山/lv_lib_100ask - Gitee.com)这个页面管理示例,页面切换怎么取消动画,您试过可以吗

滑动屏幕切换页面很简单,但是这并不是通用的需求,我会考虑预留接口让用户自己实现,同时也会提供示例代码