首页 > 其他分享 >图文解说ChinaCock FMX组件CCListBox

图文解说ChinaCock FMX组件CCListBox

时间:2022-12-10 16:03:37浏览次数:60  
标签:动画 显示 CCListBox FMX begin 滑动 ChinaCock end ListBox

随着Delphi 11发版以来,其ListBox的效率已经不可同日而语,再加之Skia的支持,使用ListBox显示大量数据,效率已经不问题。在此情况下,ChinaCock作者继承ListBox,为我们封装了新的组件:CCListBox!

接下来,我们一起看看,CCListBox增加了哪些神奇的功能以及如何使用他。

增加的属性:

1.BoundsAnimation:boolean型,如果为False,则功能与原ListBox一样,是否允许下拉与上推的动画,默认情况下,值为True

2.EnablePullDowRefresh:是否允许下拉动画,当这个属性为真时,显示动画,并触发OnPullDownRefreshing事件

3.EnablePushUpRefresh:是否允许上推动画,当这个属性为真时,显示动画,并触发OnPushUpRefreshing事件

4.IsTransParent:ListBox是否透明显示,利用这个属性,我们可以为其定义背景,例如:CCListBox放置到一个Form,那我们设置Form的填充色,再将ListBox设置为透明,那么Form就做为ListBox的背景显示了。

5.PullDownOptions:如下图,这是一个复合的属性,用于设置下拉ListBox时,即向下滑动ListBox,在ListBox顶部显示的动画: 

图文解说ChinaCock FMX组件CCListBox_加载数据

 

Fill:下拉动画的填允色

Indicator:动画的提示器

IndicatorVisible:是否显示动画指示器

Text:动画显示的文本

TextVisible:是否显示动画文本

6.PushUpOptions:基本同PullDownOptions一样,当用户上推LisBox时,即向上滑动ListBox,在ListBox底部显示的动画。

接下来,再看增加的两个事件:

1.OnPullDownRefreshing事件

用户下拉ListBox,即用户向下滑动ListBox,当显示第一行时,这时候用户再向下滑动,会显示动画,并且触发这个事件。我们在这个事件中,可以加载数据,加载完成后,关闭动画的显示。参考下面的代码:

procedure TbxFrame.ListBox1PushUpRefreshing(ASender: TObject);
begin
TTask.Run(
procedure
begin
Sleep(200);
TThread.Synchronize(nil,
procedure
begin
//往ListBox中加载数据,这里我省略了

ListBox1.IsPushUpRefreshing := False; //关闭动画
end);
end)
end;

2.OnPushUpRefreshing事件

用户上推ListBox,即用户向上滑动ListBox,当显示到最后一行时,这时候用户再向下滑动,会显示动画,并触发这个事件。

如果数据全部加载完成,那我们在关闭动画时,可以只显示动画的文字,不显示指示器图标。如下面的代码:

procedure TbxFrame.FinishLoadData;
begin
with ListBox1 do
begin
IsPushUpRefreshing := False; //关闭刷新动画
EnablePushUpRefresh := false; //不再触发 OnPushUpRefreshing 事件
PushUpOptions.IndicatorVisible := false; //不再显示动画指示器图标
PushUpOptions.TextVisible := true; //显示文字
end;
end;

 

标签:动画,显示,CCListBox,FMX,begin,滑动,ChinaCock,end,ListBox
From: https://blog.51cto.com/kinglandsoft/5927719

相关文章