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

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

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览
# `2 j# u5 v4 d4 U. S& y' ~3 h1、前言: ?* R* ^, X9 G" G
2、操作方法2 X# F1 H' W/ p% X$ r7 d
3、总结
01前言# M3 _& B- `5 D7 G( [
  b% l9 D( E9 E0 @) o" l2 a# e. K' G

0 W! L) {8 T0 c; b( n4 I, n在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。
1 ], O" t( T. F7 ~  N
# S' p/ A2 g1 `4 u7 @9 x/ l02操作方法/ W& Y) ~& r3 s( L+ ~

' C( a6 a. {1 J# @* \, j

" M5 ]& u* H" f; B; q+ r; k(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。* Y3 S+ E* ~: A9 H) ]8 X
11.png
图1.Enable ClickListener

+ _& B% R/ r2 I. C8 h启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。
% G/ L4 {! H# B
12.png
(2)用户代码中实现回调
: s" Q" w( H: a. j( h
: I# i/ z  U  e& i/ \( c6 j

; R" y, F0 k/ A- T在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。
5 @: `6 t; ]+ E+ {0 E" a# @, v4 L' Y. ~8 q6 O
/ i  N( X4 n8 f1 n- n% E6 ~9 j# r
回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。2 L% Y+ ]* p( ?5 _/ W) L' U. p- u( V
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
+ \/ z6 Z% x& ^
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。' o$ }, z2 [. x& G7 c
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。7 V1 V5 o% a" u, D  A" B1 \" T% a
16.png
7 C: V0 ?7 P# e
(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。9 |6 b. k. N$ b
17.png
(4)根据实际应用需求实现长按键的处理6 \# b, G% r" d; k" Z4 A% L

6 I( @- Y. r  I6 s, E

: Y+ P& c: L4 S: s$ Y在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。
! x  f3 l7 q6 x" h
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果

3 Y# U3 r, d. I% }4 j4 \03总结
: W+ J8 D; l. T. V+ @4 F0 R! z
1 k$ F: c$ Z- C  V本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。1 W$ A+ h; \' A) O% R+ y9 e# E

+ @+ J4 a; l: ^" q* n; ?: q3 D9 E
赞 收藏 评论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 手机版