Flythings学习(三)界面交互

文章目录

  • [1 界面切换](#1 界面切换)
    • [1.1 打开界面](#1.1 打开界面)
    • [1.2 关闭界面](#1.2 关闭界面)
  • [2 界面活动周期](#2 界面活动周期)
  • [2.1 打开不存在页面的活动流程](#2.1 打开不存在页面的活动流程)
    • [2.2 打开已存在界面(被隐藏的界面)](#2.2 打开已存在界面(被隐藏的界面))
    • [2.3 关闭界面的流程](#2.3 关闭界面的流程)

1 界面切换

界面切换的相关函数如下

1.1 打开界面

如果需要打开一个界面,在其他界面的控件上进行配合,使用函数

EASYUICONTEXT->openActivity("xxxActivity");进行页面切换

cpp 复制代码
static bool onButtonClick_Button1(ZKButton *pButton) {
    // 跳转到sub.ftu界面
    EASYUICONTEXT->openActivity("subActivity");
    return false;
}

如果需要携带一些信息,使用intent进行通信,使用重载函数

cpp 复制代码
Intent *pIntent = new Intent();
pIntent->putExtra("cmd", "open");
pIntent->putExtra("value", "ok");
EASYUICONTEXT->openActivity("subActivity", pIntent);

在对应界面接收键值对

cpp 复制代码
static void onUI_intent(const Intent *intentPtr) {
    if (intentPtr) {
        // 键值解析
        std::string cmd = intentPtr->getExtra("cmd");        // "open"
        std::string value = intentPtr->getExtra("value");    // "ok"
        ......
    }
}

1.2 关闭界面

同样与当前界面的其他控件相配合

cpp 复制代码
// 回到上个界面
EASYUICONTEXT->goBack();
// 回到打开的第一个界面
EASYUICONTEXT->goHome();
// 关闭界面,需要知道关闭界面的名字,并且启动界面无法关闭
EASYUICONTEXT->closeActivity("subActivity");

2 界面活动周期

各个界面之间呈现栈一样的关系

首先打开程序,会到达启动界面,随后通过openactivity到达subActivity界面,在subActivity又打开第三个界面,呈现栈一样的关系

打开界面和关闭界面时,都对应一个活动的周期,他有两种情况

2.1 打开不存在页面的活动流程

onUI_init 只有在界面不存在的情况下才会调用,如果只是隐藏界面,就不会使用这个函数

cpp 复制代码
static void onUI_init() {
    //Tips :添加 UI初始化的显示代码到这里,如:mTextView1Ptr->setText("123");
    LOGD("sub onUI_init\n");
    mTextView1Ptr->setText("123");
}

当界面打开后, 在onUI_intent回调函数中接收处理,

cpp 复制代码
static void onUI_intent(const Intent *intentPtr) {
    LOGD("sub onUI_intent\n");
    // 判断不为空
    if (intentPtr) {
        // 键值解析
        std::string cmd = intentPtr->getExtra("cmd");        // "open"
        std::string value = intentPtr->getExtra("value");    // "ok"
        ......
    }
}

当界面显示完成后,使用回调函数onUI_show

2.2 打开已存在界面(被隐藏的界面)

这种情况不会走 onUI_init流程

这种情况下会有两个见面进行操作

原有界面会调用onUI_hide函数,在隐藏界面时调用

打开已经隐藏的界面会调用intent进行通信,并且调用onUI_show进行界面展示

2.3 关闭界面的流程

当调用goback函数时,会将顶层的界面弹出(关闭),会调用onUI_quit函数,如果界面打开后申请了资源,在这里进行释放

退出顶层的界面后,会回调下一层界面的onUI_show接口

当调用gohome时,会弹出主窗口之外的所有窗口,

当我们调用closeActivity("xxx")函数时,可以移除除启动界面外任意界面;当移除的不是顶层的界面时,下一层的界面不会走onUI_show流程;

相关推荐
摇滚侠5 分钟前
Spring Boot 3零基础教程,WEB 开发 整合 Thymeleaf 笔记36
java·spring boot·笔记
来生硬件工程师8 分钟前
【STM32笔记】:P04 断言的使用
c语言·笔记·stm32·单片机·嵌入式硬件·硬件架构·硬件设计
曼城的天空是蓝色的14 分钟前
在环境条件下通过学习基于不同角度的交互信息来实现行人轨迹预测
学习
Cathy Bryant20 分钟前
大模型推理(九):采样温度
笔记·神经网络·机器学习·数学建模·transformer
阳光宅男@李光熠24 分钟前
【质量管理】构建供应链韧性的第一道防线——高风险供应商的识别
笔记·学习
岑梓铭27 分钟前
考研408《计算机组成原理》复习笔记,第五章(5)——CPU的【微程序控制器】
笔记·考研·408·计算机组成原理·计组
白云偷星子33 分钟前
MySQL笔记13
数据库·笔记·mysql
optimistic_chen1 小时前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
凉、介1 小时前
ARM 总线技术 —— AMBA 入门
arm开发·笔记·学习
日更嵌入式的打工仔1 小时前
嵌入式入门:APP+BSP+HAL 三层分级架构浅析
笔记·单片机·嵌入式硬件·学习