博客
关于我
在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学习总结(56)——MySQL用户管理和权限设置
查看>>
Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据
查看>>
Mysql学习总结(58)——深入理解Mysql的四种隔离级别
查看>>
Mysql学习总结(59)——数据库分库分表策略总结
查看>>
Mysql学习总结(5)——MySql常用函数大全讲解
查看>>
Mysql学习总结(60)——并发量大、数据量大的互联网业务数据库设计规范总结
查看>>
Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
查看>>
Mysql学习总结(62)——MySQL连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link问题
查看>>
Mysql学习总结(63)——Mysql数据库架构方案选择与分析
查看>>
Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
查看>>
Mysql学习总结(65)——项目实战中常用SQL实践总结
查看>>
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(67)——MYSQL慢查询日志
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>
Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
查看>>
Mysql学习总结(6)——MySql之ALTER命令用法详细解读
查看>>
Mysql学习总结(70)——MySQL 优化实施方案
查看>>
Mysql学习总结(71)——MySQL 重复记录查询与删除总结
查看>>
Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
查看>>
Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
查看>>