博客
关于我
在touchgfx中自定义触发条件切换Screen
阅读量:782 次
发布时间:2019-03-24

本文共 1804 字,大约阅读时间需要 6 分钟。

在TouchGFX中实现页面切换的两种方法

在项目开发过程中,页面(Screen)之间的切换是常见需求之一。TouchGFX提供了便捷的工具,能够帮助开发者高效完成这一任务。本文将详细介绍两种实现页面切换的方法,并结合实际案例说明其实现过程。


一、借助TouchGFX Designer生成跳转界面的Function

第一步:创建页面

打开TouchGFX Designer,新建两个页面,命名为 Screen1Screen2。在每个页面中可以添加一个颜色区分的 Box 元素,便于区分页面切换效果。

第二步:配置页面事件

进入 Screen1 的事件配置界面,勾选 触发类型(不需要特定触发类型),选择 动作切换页面。在此处,可以手动定义切换目标页面,并设置切换方式和路径。具体操作方式可参考下图:

Screen1 事件配置示例

同样地,在 Screen2 的事件配置界面中定义切换返回 Screen1 的逻辑。

第三步:生成代码并运行项目

在生成代码后,按照提示在VS中打开项目文件。运行项目,此时尚未添加自定义触发条件,页面将直接切换。接下来需要定义触发切换的条件。


二、自定义切换界面的触发条件

为了实现定时切换页面效果,需要在两种页面中定义计数器变量,并在定时器事件中触发页面切换。

Screen1.hpp 中声明

class Screen1 : public Alexandre::TouchGFX::Screen{public:    int count;    void handleTickEvent();};

Screen1.cpp 中实现

初始化计数器 count,每隔一定时间调用 handleTickEvent() 方法。

int Screen1::count = 0;void Screen1::handleTickEvent(){    count++;    if (count % 2 == 0)    {        // 切换到Screen2,使用切换函数gotoScreen2()或直接调用Screen1的切换功能        gotoScreen2(Screen2::SlideTransitionEast());    }}

Screen2.hpp 中声明

class Screen2 : public Alexandre::TouchGFX::Screen{public:    int count;    void handleTickEvent();};

Screen2.cpp 中实现

int Screen2::count = 0;void Screen2::handleTickEvent(){    count++;    if (count % 2 == 0)    {        // 切换返回Screen1        gotoScreen1(Screen1::SlideTransitionWest());    }}

三、重点分析 gotoScreen2ScreenSlideTransitionEast() 方法

参数说明

gotoScreen2ScreenSlideTransitionEast() 是一个功能方法,用于切换页面。参数包括:

  • JumpTarget:目标页面名称(例如 Screen2)。
  • TransitionEffect:切换效果类型(如 Slide 表示滑动切换)。
  • TransitionDirection:切换方向(如 East 表示从右向左切换)。

示例调用

// 在Screen1中调用this->gotoScreen2(SlideTransitionEast());

四、自己编写页面跳转函数

虽然自定义编写函数方式复杂化,但从原理上来讲,可以参考按钮点击事件切换页面的实现方式编写自定义函数。例如:

// 定义切换函数void CustomGotoScreen(){    // 实现页面切换逻辑    this->gotoScreen(Screen2::SlideTransitionEast());}

总结

通过以上两种方法,可以轻松实现页面切换效果。第一种方法更简单快捷,适合大多数场景;第二种方法适用于需要条件触发切换的复杂场景。在实际开发中,结合项目需求选择合适的实现方式,可以提升开发效率。

转载地址:http://usokk.baihongyu.com/

你可能感兴趣的文章
MySQL快速入门——库的操作
查看>>
mysql快速复制一张表的内容,并添加新内容到另一张表中
查看>>
mysql快速查询表的结构和注释,字段等信息
查看>>
mysql怎么删除临时表里的数据_MySQL中关于临时表的一些基本使用方法
查看>>
mysql性能优化
查看>>
mysql性能优化学习笔记-存储引擎
查看>>
MySQL性能优化必备25条
查看>>
Mysql性能优化(1):SQL的执行过程
查看>>
Mysql性能优化(2):数据库索引
查看>>
Mysql性能优化(3):分析执行计划
查看>>
Mysql性能优化(4):优化的注意事项
查看>>
Mysql性能优化(5):主从同步原理与实现
查看>>
Mysql性能优化(6):读写分离
查看>>
MySQL性能优化(八)--
查看>>
MySQL性能测试及调优中的死锁处理方法
查看>>
mysql性能测试工具选择 mysql软件测试
查看>>
mysql恢复root密码
查看>>
Mysql悲观锁
查看>>
MySQL慢查询-开启慢查询
查看>>
MySQL慢查询分析和性能优化的方法和技巧
查看>>