注意: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

//------------------------------------------------------------------------------// 2013.12.30 by 龟山阿卍 QQ 1467948783                                        -// http://www.cnblogs.com/onechen/                                             -//                                                                             -// 需修改                                                                      -// FMX.Platform.Android.pas                                                    -// function TPlatformAndroid.GetScrollingBehaviour: TScrollingBehaviours;      -//------------------------------------------------------------------------------unit Main;interfaceuses  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:=0 to 100 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 < -80 then          begin               RefreshLabel.Text := '放开后可更新';               RefreshImage.Visible := True;               if not ShowUp then               begin                    ShowUp := True;                    FloatAnimation1.StartValue := 360;                    FloatAnimation1.StopValue  := 180;                    FloatAnimation1.Start;               end;          end          else          if ListView1.ScrollViewPos < -40 then          begin               RefreshLabel.Text := '下拉可更新';               RefreshImage.Visible := True;               if not ShowDown then               begin                    ShowDown := True;                    FloatAnimation1.StartValue := 180;                    FloatAnimation1.StopValue  := 360;                    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.

更多相关文章

  1. Android的线程Handler实现
  2. android 修改默认APN
  3. 2.3.1 Android(安卓)Studio使用记录——1.下载安装,相关配置
  4. Android(安卓)模拟器中AVD路径的修改
  5. ionic3修改android安装显示的名称
  6. Android(安卓)SDK三种更新失败及其解决办法
  7. Android的线程Handler实现
  8. Android游戏引擎Rokon宣布停止更新
  9. Linux下Android(安卓)SDK环境搭建--使用命令更新Android(安卓)SD

随机推荐

  1. Android ACodec学习
  2. 百度地图 android 线路
  3. 新手安卓socket 连接 内网穿透问题
  4. android 崩溃 重启 捕获异常 并重启应用
  5. Android Studio 3.0 正式版 踩坑记录
  6. Android 监听软键盘状态
  7. 编译android ICS的SDK时遇到的问题
  8. Android 集成友盟第三方登录分享
  9. Android使用Base64将图片与String的转换
  10. Android(安卓)BLE的总结-概念篇