stm32基于TouchGFX的GUI开发(六):(Scroll List)滚动列表的使用最终效果图:

前言 本章我们将介绍Scroll List控件的使用。 提示:以下是本篇文章正文内容,下面案例可供参考
一、界面布局以及资源添加 1、创建自定义控件
2、创建主screen界面 指定Sscrcroll List的样式为自定义控件
备注: 为了方便演示,本工程的背景图直接用的touchgfx界面里自带的图片。
二、功能实现 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>
复制代码
2、实现Scroll List的虚函数 下图是Scroll List的虚函数,每次更新item时会调用
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>
复制代码
4、回调函数的实现 回调函数的声明
回调函数的实现 - <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>
复制代码
|