stm32基于TouchGFX的GUI开发(六):(Scroll List)滚动列表的使用最终效果图:) {9 D2 v) J, O( _0 s

前言 本章我们将介绍Scroll List控件的使用。 提示:以下是本篇文章正文内容,下面案例可供参考
d% m9 I2 }7 m( Y' d
一、界面布局以及资源添加 1、创建自定义控件 , U4 z3 G6 P7 Z8 a# {1 c
+ I1 l8 |9 @% t6 h
2、创建主screen界面 指定Sscrcroll List的样式为自定义控件
& [- u* ~! D. A
8 P, x# K2 z5 Q: K4 \$ n
备注: 为了方便演示,本工程的背景图直接用的touchgfx界面里自带的图片。 4 o) X6 X4 H" W' b( I) u
二、功能实现 1、自定义控件设置图片方法实现 - <p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> //.h文件中声明如下</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> void setBitmap(int16_t index);</font></font></p>
复制代码 * j1 H7 R j3 F. i0 C/ _
! |& e# K" i+ k
2、实现Scroll List的虚函数 下图是Scroll List的虚函数,每次更新item时会调用
! s$ F7 Y; \; W3 V5 V. n
1 h s' ?( M0 U
3、主界面的构造函数中添加界面初始化代码 - <p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">//别忘记增加图片头文件</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">#include "BitmapDatabase.hpp"</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">//采用参数列表初始化方式</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">Screen2View::Screen2View():callback(this,&Screen2View::callbackHandler)</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">{</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> scrollList1.setItemSelectedCallback(callback);</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> scrollList1.animateToItem(scrollList1.getNumberOfItems() / 2);</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">}</font></font></p>
复制代码 : c* o1 ~3 l# S! K) V
4、回调函数的实现 回调函数的声明
* @+ M4 J6 S1 H- A' a
3 {2 k4 m" t8 {% y: n3 d, D
回调函数的实现 - <p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">void Screen2View::callbackHandler(int16_t index)</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">{</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> box1.invalidate();</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> switch (index)</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> {</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> case 0:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_CALENDAR_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> case 1:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_DOCUMENT_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> case 2:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_FOLDER_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> case 3:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_INBOX_48_ID));</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> case 4:</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> image1.setBitmap(Bitmap(BITMAP_DARK_ICONS_MOVIE_48_ID)); </font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> default: break;</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> }</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d"> image1.invalidate();</font></font></p><p style="line-height: 26px;"><font face="-apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif"><font color="#4d4d4d">}</font></font></p>
复制代码
g0 L- a; w1 M N& E, ~
4 |6 B. D9 y) P6 _% F0 X" u% S; ?& M5 F; W9 W g. n
: @6 D6 O# z2 V5 Q' n2 q! z% U
5 N$ L. K* l# M+ }" x# W+ @ |