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

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

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览  ]% P' d1 L- v; y
1、前言( c& H7 P- K3 X6 X  q
2、操作方法1 [; j. U6 d  s* b5 L
3、总结
01前言9 s9 w( ?( O4 W! K
# u0 }% i: G" R7 T- T: f* o2 Q- z

* {: I5 H5 b  n! M* h) Y1 v0 i: A% w在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。) h3 m2 b. S; H2 x) A7 w
, z% }5 U& P  ~; f7 H* x8 I( G
02操作方法/ S. I/ N: b- ~4 I

' t4 `, [  d( P! `' d
, t/ d! o$ E  f1 Z
(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。
4 s& j- l+ J/ Z; d, {& G
11.png
图1.Enable ClickListener

: q0 B$ Y: z  v& G8 l9 U启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。
/ r8 K+ w9 O! y- s. Y
12.png
(2)用户代码中实现回调" q/ ~0 W: p6 K

. H2 c  M0 O( z/ K" q. l& A& }' Y

2 {2 I3 _$ p$ v1 Q9 I/ |- n在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。
0 f& ~  ?5 t' F3 X( [$ j2 L, j/ f, f9 ?3 ^+ T/ E; a

7 u' Q6 W0 D5 K, R, i! u回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。6 E! ?( [7 k7 K( g* s# o
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
; B5 Z( e# O3 O" W3 E- ^$ d2 M
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。
" ~0 _- L: L5 v
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。) R! n2 [: H" L
16.png

- f* R; ^0 e! b" w(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。- r! a. ?! u9 \3 N4 f/ C. A
17.png
(4)根据实际应用需求实现长按键的处理' J1 ~+ N* @' x
5 O4 A: `3 U1 z  u8 E% c" B7 z9 @3 z7 I
1 H5 D- C' R& Y6 p2 \( s5 V
在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。3 @% f2 M8 \* d& v6 d& O0 F
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果
( @( R$ g  U# p; c( ^1 {) y
03总结6 M1 Q9 _, @6 M# C3 U

% P4 H' t# t+ e8 ?/ V本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。
# i" Y+ x/ v7 P: q( j- O5 d0 N8 b
0 A$ D2 U: L' x" R- E/ T9 ^( k$ R
收藏 评论1 发布时间:2024-2-20 09:01

举报

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

学习啦~~~

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版