線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:789
推到 Plurk!
推到 Facebook!

如何讓手勢的滑動,更貼近Scroll的移動?

答題得分者是:andy424345
kuraki5336
初階會員


發表:13
回覆:35
積分:34
註冊:2010-06-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2018-04-01 02:33:46 IP:114.38.xxx.xxx 未訂閱
有個小問題,該如何手勢滑動,像正常的APP那樣,平順的移動呢?

目前啟用LongTab ..也有試過其他的狀態效果差不多

if EventInfo.GestureID = sgiUp then
begin
ListView1.ScrollViewPos := ListView1.ScrollViewPos 40;
end;

這樣的寫法在listview上,由上往下滑一次,就只有位移40

是希望能同步Listview的Scroll
當今天划的距離較長則資料位移的範圍則較大

還是說一般不是這樣做的???
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2018-04-02 17:45:37 IP:180.217.xxx.xxx 未訂閱
我自己的使用的經驗, 如果是在ListView中要捲動, 我並沒有去指定任何Scroll 的手勢, 系統會自動偵測你手勢的範圍, 如果小滑, 移動會少一些, 大滑(如由底部快速直滑到頂端), 就會捲動快幅度大, 所以不清楚你的感覺如何~~
kuraki5336
初階會員


發表:13
回覆:35
積分:34
註冊:2010-06-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2018-04-06 13:46:18 IP:101.15.xxx.xxx 未訂閱
謝謝P.D.的回覆

因為是希望他能夠在W10也有相同效果。放到安卓是可以直接滑動的

如這個動畫所示....
https://photos.app.goo.gl/sbCOAO6y83VSD5hB3

因為想做出小滑動跑一點 大滑動 跑多點的感覺

===================引 用 P.D. 文 章===================
我自己的使用的經驗, 如果是在ListView中要捲動, 我並沒有去指定任何Scroll 的手勢, 系統會自動偵測你手勢的範圍, 如果小滑, 移動會少一些, 大滑(如由底部快速直滑到頂端), 就會捲動快幅度大, 所以不清楚你的感覺如何~~
andy424345
一般會員


發表:2
回覆:13
積分:23
註冊:2011-03-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2018-04-11 16:51:23 IP:60.251.xxx.xxx 未訂閱
最直接的方式就是複製FMX.ListView.pas到你的專案目錄底下
修改function TListViewBase.HasTouchTracking: Boolean;
Result改成True就好了
在Windows的SystemInformationService的GetScrollingBehaviour沒有TouchTracking
所以在Create的時候就不會Create TAniCalculations元件來做滑動動畫
修改後基本上是不會對程式有影響的...
kuraki5336
初階會員


發表:13
回覆:35
積分:34
註冊:2010-06-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2018-04-12 01:17:31 IP:114.38.xxx.xxx 未訂閱
謝謝andy4234345的解說

這幾天測試一下。大感謝....

===================引 用 andy424345 文 章===================
最直接的方式就是複製FMX.ListView.pas到你的專案目錄底下
修改function TListViewBase.HasTouchTracking: Boolean;
Result改成True就好了
在Windows的SystemInformationService的GetScrollingBehaviour沒有TouchTracking
所以在Create的時候就不會Create TAniCalculations元件來做滑動動畫
修改後基本上是不會對程式有影響的...
kuraki5336
初階會員


發表:13
回覆:35
積分:34
註冊:2010-06-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2018-04-13 09:53:31 IP:49.214.xxx.xxx 未訂閱
Dear All


目前有兩個解法 一個是Andy 大大說的那個方法可行。
另一個是阿卍提供的解法

function TPlatformWin.GetScrollingBehaviour: TScrollingBehaviours;
Value: Integer;
Value := GetSystemMetrics(SM_DIGITIZER);
Result := [TScrollingBehaviour.Animation, TScrollingBehaviour.TouchTracking]
Result := [TScrollingBehaviour.Animation, TScrollingBehaviour.TouchTracking]; // 手勢滑動
end;


非常感謝兩位大大的幫忙.....
系統時間:2024-05-05 2:20:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!