红鱼儿

10.4.2 ListView.ScrollViewChange存在的问题
procedure TPageListDialogFrame.ListView1ScrollViewChange(Sender: TObject);
var
  allheight: real;
begin
  with Sender as TListView do
  begin
    allheight := ScrollViewPos + GetItemRect(ItemCount - 1).Bottom - LocalRect.Height;
    //kbmMWLog.Log.Debug('ScrollViewPos='+FloatToStr(ScrollViewPos)+' allheight='+FloatToStr(allheight));
    //升级到10.4.2,allheight有小数=2686.66666,ScrollViewPos=2686,造成不执行pg.nextpage,修改为截取小数后再比较.
    if (trunc(ScrollViewPos) >= Trunc(allheight)) then
    begin
      pq.NextPage;
    end;
  end;
end;

上面是修正后的代码。

这两天遇到问题,用户反应Listview滑到最底部,不自动加载内容。于是内部测试发现,有的手机可以,有的不行。最后跟踪代码发现,在不行的手机上,输出的日志为:

ScrollViewPos=2686 allheight=2686.66668701172
于是按上面的代码修正,对这两个值取整,问题解决。

posted on 2021-04-05 11:08  红鱼儿  阅读(207)  评论(0编辑  收藏  举报