lvgl手势事件触发不灵敏

各位老师好:
我的项目基于lvgl的8.3.11的库,现在使用gesture功能,尝试达到类似手机顶部栏位下滑跳出导航栏的功能。
在测试过程中发现,我将 手势下滑触发的区域设成x0=0,x1=480,y0=0,y1=80这样一个矩形区域,下滑的事件很难触发,但当我将y1设置成200,这事件就特别容易触发。请问这是什么问题?
我的代码如下:

enum pagenum
{
page_1,
page_main,
page_2
};

static void create_page1(void)
{
// 创建页面1的内容,例如按钮、标签等
page1 = lv_obj_create(NULL);
lv_obj_set_size(page1, LV_HOR_RES, LV_VER_RES);

lv_obj_t* btn1 = lv_btn_create(page1);
lv_obj_set_pos(btn1, (LV_HOR_RES - 100) / 2, (LV_VER_RES - 50) / 2);
lv_obj_set_size(btn1, 100, 50);

lv_obj_t* label1 = lv_label_create(btn1);
lv_label_set_text(label1, "Page 1");

// lv_obj_add_event_cb(btn1, page1_gesture_event_handler, LV_EVENT_ALL, NULL);

}

static void create_page2(void)
{
page2 = lv_obj_create(NULL);
lv_obj_set_size(page2, LV_HOR_RES, LV_VER_RES);

lv_obj_t* table1 = lv_table_create(page2);
lv_table_set_col_cnt(table1, 3);
lv_table_set_row_cnt(table1, 5);
lv_obj_align(table1, LV_ALIGN_CENTER, 0, 0);
lv_obj_t* btn2 = lv_btn_create(page2);
lv_obj_set_size(btn2, 100, 50);

lv_obj_t* label2 = lv_label_create(btn2);
lv_label_set_text(label2, "Page 2");


//lv_obj_add_event_cb(btn2, page2_gesture_event_handler, LV_EVENT_ALL, NULL);

}
//lv_indev_get_point();
int mainpageflag;
#define AREA_X1 0
#define AREA_Y1 0
#define AREA_X2 600
#define AREA_Y2 120
void scr_event_cb(lv_event_t* e)
{
lv_indev_wait_release(lv_indev_get_act());// 等待触屏释放

lv_dir_t dir = lv_indev_get_gesture_dir(lv_indev_get_act());
//page = lv_event_get_user_data(obj);

//这里是获取当前鼠标点击的坐标
lv_point_t p;
lv_indev_get_point(lv_event_get_indev(e), &p);
printf("Thep.x = %d and p.y =%d ", p.x, p.y);
a

if (dir == LV_DIR_BOTTOM)//右滑
{
    printf("RIGHT Dir: %d\n", dir);
    rightcnt++;
    printf("RIGHT Cnt: %d\n", rightcnt);

    if (rightcnt > 2) rightcnt = 2;
    switch (rightcnt)
    {
    case page_2:
        if (p.x >= AREA_X1 && p.x <= AREA_X2 && p.y >= AREA_Y1 && p.y <= AREA_Y2) {
            printf("Click detected within the specified area!\n");
            lv_scr_load_anim(page2, LV_SCR_LOAD_ANIM_OVER_RIGHT, 300, 0, false);
        }
        break;
    case page_main:
        lv_scr_load_anim(page0, LV_SCR_LOAD_ANIM_OVER_RIGHT, 300, 0, false);
        break;
    default:
        break;
    }

}
else if (dir == 1 )//左滑
{
    printf("LEFT Dir: %d\n", dir);

    rightcnt--;
    printf("LEFT Cnt: %d\n", rightcnt);
    if (rightcnt < 0)
    {
        rightcnt = 0;
        mainpageflag = 1;
    }

    switch (rightcnt)
    {

    case page_1:
        if (mainpageflag == 1)
        {

            lv_scr_load_anim(lv_scr_act(), LV_SCR_LOAD_ANIM_OVER_RIGHT, 300, 0, false);

            mainpageflag = 0;
        }
        else
        {
            lv_scr_load_anim(page1, LV_SCR_LOAD_ANIM_OVER_RIGHT, 300, 0, false);
        }
        break;
    case page_main:
        lv_scr_load_anim(page0, LV_SCR_LOAD_ANIM_OVER_RIGHT, 300, 0, false);
        break;
    default:
        break;
    }

}

}

void lv_gesture_demo(void)
{
page0 = lv_obj_create(NULL);
lv_obj_set_size(page0, LV_HOR_RES, LV_VER_RES);

lv_scr_load(page0);
lv_obj_t* label1 = lv_label_create(page0);
lv_label_set_text(label1, "Page 0");

create_page1();
create_page2();
lv_obj_add_event_cb(lv_scr_act(), scr_event_cb, LV_EVENT_GESTURE, NULL); //表示只在当前页面生效,切换出去得重新给那个页面也增加这个回调
lv_obj_add_event_cb(page0, scr_event_cb, LV_EVENT_GESTURE, NULL); //表示只在当前页面生效,切换出去得重新给那个页面也增加这个回调
lv_obj_add_event_cb(page1, scr_event_cb, LV_EVENT_GESTURE, NULL); //表示只在当前页面生效,切换出去得重新给那个页面也增加这个回调
lv_obj_add_event_cb(page2, scr_event_cb, LV_EVENT_GESTURE, NULL); //表示只在当前页面生效,切换出去得重新给那个页面也增加这个回调
//
//// 显示页面1
//lv_scr_load(page1);

}

祝好