随着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顶部显示的动画:
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