你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

实战经验 | TouchGFX 处理按钮长按的一种方法

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览1 u/ ]2 n7 A; ]% t+ Q! p
1、前言5 m5 g; w9 R& _& u" n  k
2、操作方法
2 ~( Y* I. e5 ]" c3、总结
01前言& K9 _3 T  X' b0 Q8 u- F: z: G
" Z8 r" d, F9 N" K( ?& Q

$ ^+ N+ j1 Y5 y  |7 p) A在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。
7 ~2 g/ X' @3 M$ T" O- f. ?& W) H8 y) ]
02操作方法
8 n" i$ L2 I" E. [6 H4 J0 |1 q0 _/ D$ D# S7 \) d  A
* y9 q2 H) I# A+ f
(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。
: [' e" E( b" u3 z: P6 w
11.png
图1.Enable ClickListener
' @  v( C. o5 `2 j+ }. w
启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。
  Z( a9 L1 M2 S* F" C
12.png
(2)用户代码中实现回调
# Y' m2 l0 U/ g* {8 n& N
  m3 u2 `6 }4 V' S4 W" p) L' s

: w: [) T8 g1 m' ~在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。6 u1 V9 y! p" \$ c

/ |2 S4 n  q8 O
/ b4 }) h. i# W8 }- F, H3 P
回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。3 @) _% U( ?8 h6 r: K
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。  |1 d* N8 a) t
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。
8 A3 Z7 y+ B$ x# k' D
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。' H  Z0 ~% k# M, l- ?/ G
16.png

: m1 @( `7 n  n. i(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。2 X! g) G% C/ H5 \* g/ O% G- J& o
17.png
(4)根据实际应用需求实现长按键的处理1 I6 A/ t9 i' a, w: N( S
2 U) e4 i9 k3 V+ v
! h. \/ t. J* l4 J) e
在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。/ a! R, p5 k4 i5 `1 I
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果
1 R+ Q, i$ D. e9 `0 F
03总结
) E5 @4 Q2 Q. a5 _. s+ R) X3 ~8 a8 q1 q5 u
本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。7 ]8 M4 f' ~" f4 Q# a3 N
: O1 I5 z* u8 j7 x0 C
赞 收藏 评论1 发布时间:2024-2-20 09:01

举报

1个回答
xu@xupt 回答时间:2024-2-25 19:22:51

学习啦~~~

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版