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

你可能感兴趣的文章
mppt算法详解-ChatGPT4o作答
查看>>
mpvue的使用(一)必要的开发环境
查看>>
MQ 重复消费如何解决?
查看>>
mqtt broker服务端
查看>>
MQTT 保留消息
查看>>
MQTT 持久会话与 Clean Session 详解
查看>>
MQTT工作笔记0007---剩余长度
查看>>
MQTT工作笔记0009---订阅主题和订阅确认
查看>>
Mqtt搭建代理服务器进行通信-浅析
查看>>
MS Edge浏览器“STATUS_INVALID_IMAGE_HASH“兼容性问题
查看>>
ms sql server 2008 sp2更新异常
查看>>
MS UC 2013-0-Prepare Tool
查看>>
MSBuild 教程(2)
查看>>
msbuild发布web应用程序
查看>>
MSB与LSB
查看>>
MSCRM调用外部JS文件
查看>>
MSCRM调用外部JS文件
查看>>
MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
查看>>
MsEdgeTTS开源项目使用教程
查看>>
msf
查看>>