Embarcadero has some sample code up which shows you how to do a pull or swipe down to refresh a TListView. A lot of mobile apps like Facebook use this functionality instead of having a refresh button. It saves screen real estate by not having an extra button to deal with. The idea is that you are at the top of the list and you put your finger down on the list and swipe or pull down. The list drags down and then you show a activity spinner above the list. Once the update is complete and the list gets updated the activity spinner goes away. The blog post talks about being for IOS but this will work on both Android and IOS. The code is simple enough and just checks the ScrollViewPos property of TListView. Take a look:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
procedure TForm.ListView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if not Updating and (ListView1.ScrollViewPos < -40) then begin Updating := true; AniIndicator1.Visible := True; AniIndicator1.Enabled := true; for I := Myposition + 1 to Myposition +20 do begin LItem := ListView1.Items.Add; LItem.Text := Format(’Text %d’, [I]); end; inc(myposition, 20); end; end; |
联系客服