博客
关于我
在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/

你可能感兴趣的文章
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
查看>>
Node.js RESTful API如何使用?
查看>>
node.js url模块
查看>>
Node.js Web 模块的各种用法和常见场景
查看>>
Node.js 之 log4js 完全讲解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 函数计算如何突破启动瓶颈,优化启动速度
查看>>
Node.js 切近实战(七) 之Excel在线(文件&文件组)
查看>>
node.js 初体验
查看>>
Node.js 历史
查看>>
Node.js 回调函数的原理、使用方法
查看>>
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>
Node.js 模块系统的原理、使用方式和一些常见的应用场景
查看>>
Node.js 的事件循环(Event Loop)详解
查看>>
node.js 简易聊天室
查看>>
Node.js 线程你理解的可能是错的
查看>>