ListView 下拉更新 (支持 Android)

时间:2023-01-25 21:18:00

注意:XE7 已提供下拉更的功能。

说明:展示如何在 Android 平台下,使用 ListView 下拉更新。

适用:Delphi XE5 , XE6

修改:需要修改到 Delphi 源码 FMX.Platform.Android.pas,请见:[原创] 让 ListView 在 Android 可回弹

视频:http://v.youku.com/v_show/id_XNjU1MzExMDY0.html

源码下载:[原创]ListView下拉更新_XE5.zip

源码下载:[原创]ListView下拉更新_XE6.zip

ListView 下拉更新 (支持 Android)
//------------------------------------------------------------------------------
// 2013.12. by 龟山阿卍 QQ -
// http://www.cnblogs.com/onechen/ -
// -
// 需修改 -
// FMX.Platform.Android.pas -
// function TPlatformAndroid.GetScrollingBehaviour: TScrollingBehaviours; -
//------------------------------------------------------------------------------ unit Main; interface uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.ListView.Types, FMX.Objects, FMX.ListView, FMX.Ani; type
TForm1 = class(TForm)
ToolBar1: TToolBar;
ListView1: TListView;
PullPaintBox: TPaintBox;
AniIndicator1: TAniIndicator;
RefreshTimer: TTimer;
RefreshLabel: TLabel;
RefreshImage: TImage;
FloatAnimation1: TFloatAnimation;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Single);
procedure ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
procedure RefreshTimerTimer(Sender: TObject);
private
ShowUp, ShowDown: Boolean;
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
Item1: TListViewItem;
begin
for i:= to do
begin
Item1 := ListView1.Items.Add;
Item1.Text := i.ToString;
end;
ShowUp := False;
ShowDown := False;
end; procedure TForm1.ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Single);
begin
if not AniIndicator1.Visible then
begin
RefreshLabel.Visible := True;
if ListView1.ScrollViewPos < - then
begin
RefreshLabel.Text := '放开后可更新'; RefreshImage.Visible := True;
if not ShowUp then
begin
ShowUp := True;
FloatAnimation1.StartValue := ;
FloatAnimation1.StopValue := ;
FloatAnimation1.Start;
end;
end
else
if ListView1.ScrollViewPos < - then
begin
RefreshLabel.Text := '下拉可更新'; RefreshImage.Visible := True;
if not ShowDown then
begin
ShowDown := True;
FloatAnimation1.StartValue := ;
FloatAnimation1.StopValue := ;
FloatAnimation1.Start;
end;
end
else
begin
RefreshLabel.Text := '';
RefreshImage.Visible := False;
end;
end;
end; procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
begin
if RefreshLabel.Visible then
begin
RefreshLabel.Visible := False; // 开始更新
AniIndicator1.Visible := True;
AniIndicator1.Enabled := True; RefreshTimer.Enabled := True;
end;
end; procedure TForm1.RefreshTimerTimer(Sender: TObject);
begin
// 结束更新
RefreshTimer.Enabled := False; AniIndicator1.Enabled := False;
AniIndicator1.Visible := False; ShowUp := False;
ShowDown := False;
end; end.

ListView 下拉更新 (支持 Android)的更多相关文章

  1. 使用PullToRefresh插件实现ListView下拉刷新(Android Studio)

    下载PullToRefresh

  2. Android—自定义控件实现ListView下拉刷新

    这篇博客为大家介绍一个android常见的功能——ListView下拉刷新(参考自他人博客,网址忘记了,阅读他的代码自己理解注释的,希望能帮助到大家): 首先下拉未松手时候手机显示这样的界面: 下面的 ...

  3. Android学习之——ListView下拉刷新

    背景知识 ListView使用非常广泛,对于使用ListView的应用来说,下拉刷新是必不可少要实现的功能. 我们常用的微博.网易新闻,搜狐新闻都使用了这一功能,如下图所示.     微博 搜狐新闻 ...

  4. Android ListView下拉刷新时卡的问题解决小技巧

    问题:ListView下拉刷新时看上去非常的卡 解决方案: 在BaseAdapter的getView方法中,有三个参数 public View getView(int position, View c ...

  5. ListView下拉刷新,上拉自动加载更多

    下拉刷新,Android中非常普遍的功能.为了方便便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能.设计最初是参考开源中国的Android客户端源码.先看示例图.       ...

  6. ListView下拉刷新、上拉载入更多之封装改进

    在Android中ListView下拉刷新.上拉载入更多示例一文中,Maxwin兄给出的控件比较强大,前面有详细介绍,但是有个不足就是,里面使用了一些资源文件,包括图片,String,layout,这 ...

  7. ListView下拉刷新上拉加载更多实现

    这篇文章将带大家了解listview下拉刷新和上拉加载更多的实现过程,先看效果(注:图片中listview中的阴影可以加上属性android:fadingEdge="none"去掉 ...

  8. listview下拉刷新上拉加载扩展(二)-仿美团外卖

    经过前几篇的listview下拉刷新上拉加载讲解,相信你对其实现机制有了一个深刻的认识了吧,那么这篇文章我们来实现一个高级的listview下拉刷新上拉加载-仿新版美团外卖的袋鼠动画: 项目结构: 是 ...

  9. listview下拉刷新上拉加载扩展(一)

    前两篇实现了listview简单的下拉刷新和上拉加载,功能已经达到,单体验效果稍简陋,那么在这篇文章里我们来加一点效果,已达到我们常见的listview下拉刷新时的效果: 首先,在headview的x ...

随机推荐

  1. APP测试要点

    APP测试的时候,建议让开发打好包APK和IPA安装包,测试人员自己安装应用,进行测试.在测试过程中需要注意的测试点如下: 1.安装和卸载 ●应用是否可以在IOS不同系统版本或android不同系统版 ...

  2. bzoj4547 小奇的集合

    当序列中最大和次大都是负数的时候,其相加会是一个更小的负数,因此答案为(Σai)+(m1+m2)*k,如果最大是正数次大是负数,那么一直相加直到两个数都为正数,当最大和次大都是正数时,做一下矩阵乘法即 ...

  3. 新的小游戏发布啦。Pop Jungle

    丛林爱消除是一款画面清新,效果绚丽的消除类休闲游戏.你只需要选中尽可能多的图块,并消除它们就可以得到高分,并有无限多的关卡等待你去征服.一旦你开始玩儿你将无法停止下来,如果你还是消除星星的粉丝,那你更 ...

  4. flask中的request&period;form对象方法

    'add','clear','copy','deepcopy','fromkeys','get','gtlist','has_key','items','iteritems','iterkeys',' ...

  5. 微信开发之开发环境搭建( visual studio 2015we &plus; IIS express &plus; ngrok)

    1. 申请个人测试使用的微信订阅号 https://mp.weixin.qq.com 可注册微信订阅号. 不会?请自行百度. 2. 安装 ngrok 微信开发首先要解决如何让微信链接到本地开发环境.有 ...

  6. TSQL Challenge 2

    和之前发布的TSQL Challenge 1是同一系列的文章,看到那篇学习哪篇,没有固定的顺序,只为锻炼下思维. Compare rows in the same table and group th ...

  7. win32 安装 xcache扩展

    今天整了一上午,才整明白. 我的系统是是 win7 32位 ,用的环境是 Wamp,php版本是5.3.5,后来在http://xcache.lighttpd.net/pub/Releases/3.0 ...

  8. PHPstorm 如何新增项目

    如何在PHPstorm新增项目 1.打开设置 2.找到Directories ,点击增加路径

  9. 最大流:Dinic算法

    蒟蒻居然今天第一次写网络流 我太弱啦! 最大流问题有很多解法 虽然isap常数巨小 但是连dinic都写挂的本蒟蒻并不会orz 那么我们选用比较好实现的dinic来解决最大流问题 来一段定义:    ...

  10. NPM安装步骤

    一.使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资 ...