LVGL_V8.3入门六---手表表盘页面之间的切换(触摸切换、物理按键切换、组件切换)

本文介绍了在LVGL框架下,通过触摸和按钮组件实现页面切换的方法,包括事件设置、lv_scr_load_anim的使用以及代码示例。详细讲解了如何通过GESTURE_LEFT和CLICKED事件触发屏幕切换,以及动画效果的参数配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录



一、实验效果

在这里插入图片描述

二、通过触摸进行页面切换

1、单击选中屏幕一
在这里插入图片描述
2、新增ADD EVENT
在这里插入图片描述
3、设置事件触发属性
LVGL中有以下常见的事件类型
在这里插入图片描述
将事件设置为GESTURE_LEFT,向左滑动的手势。动作设置为Screen2,意思是滑动后切换到屏幕二。Fade mode设置的是屏幕滑动的方向。Speed设置滑动速度,Delay设置滑动延时。
在这里插入图片描述

三、通过按钮组件进行页面切换

将事件设置为CLICKED点击触发。动作设置为Screen1,意思是点击切换到屏幕一。Fade mode设置的是屏幕滑动的方向。Speed设置滑动速度,Delay设置滑动延时。
在这里插入图片描述

四、代码解析

增加触发事件

lv_obj_add_event_cb(ui_HomePage, ui_event_HomePage, LV_EVENT_ALL, NULL);

利用 lv_scr_load_anim函数进行切换,如果检测到屏幕滑动或者点击事件就使用 lv_scr_load_anim进行切换


void lv_scr_load_anim(lv_obj_t * scr, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay, bool auto_del);
通过动画的方式显示
参数1:要加载的屏幕
参数2:动画类别
参数3:切换动画需要的时间
参数4:为true时则会在切换界面后将旧界面删除,节约内存

编写事件回调函数

void ui_event_HomePage(lv_event_t * e)
{
   lv_event_code_t event_code = lv_event_get_code(e);
    lv_obj_t * target = lv_event_get_target(e);

    if(event_code == LV_EVENT_GESTURE)
    {
			if(lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT)
      {
         ui_MenuPage_screen_init();
         lv_scr_load_anim(ui_MenuPage,LV_SCR_LOAD_ANIM_MOVE_RIGHT,100,0,true);
      }
	        if(lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT)
	      {
	         ui_SeaTime_screen_init();
	         lv_scr_load_anim(ui_Screen1,LV_SCR_LOAD_ANIM_MOVE_LEFT,100,0,true);
	      }

	}

}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值