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

你可能感兴趣的文章
NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
查看>>
NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
查看>>
NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
查看>>
NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
查看>>
NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO三大组件基础知识
查看>>