Firemonkey ListView 的点击事件一直让人摸不着头绪(各平台触发规则不太相同),因为它提供了点击相关的事件就有如下:

  • OnChange:改变项目触发。
  • OnClick:点击触发。
  • OnItemClick:点击项目触发
    • Windows 平台:按下立即触发,放开后接着触发 OnItemClickEx。
    • Android 平台:按下立即触发,不用放开接着 OnItemClickEx(按钮 Button 触发顺序与 Widnows 相同,要放开才会触发 OnItemClickEx)。
  • 下列以这二个事件为例:
    • OnItemClickEx:项目内单项触发。
    • OnButtonClick:按钮事件。

下例将 Item.Apperance 设定为 Custom。

可获取每一个单项的事件触发:

参考代码:

procedure TForm1.ListView1ItemClickEx(const Sender: TObject; ItemIndex: Integer;const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
beginif ItemObject is TListItemText       then Label1.Text := 'OnItemClickEx_Text_'      + ItemIndex.ToString elseif ItemObject is TListItemImage      then Label1.Text := 'OnItemClickEx_Image_'     + ItemIndex.ToString elseif ItemObject is TListItemAccessory  then Label1.Text := 'OnItemClickEx_Accessory_' + ItemIndex.ToString;
end;procedure TForm1.ListView1ButtonClick(const Sender: TObject;const AItem: TListItem; const AObject: TListItemSimpleControl);
beginif AObject is TListItemGlyphButton then Label1.Text := 'OnButtonClick_GlyphButton_' + AItem.Index.ToString elseif AObject is TListItemTextButton  then Label1.Text := 'OnButtonClick_TextButton_'  + AItem.Index.ToString;
end;

有一些问题存在:

  1. 点击 Accessory 后是触发 Text 而非 Accessory,这部份我有改动到源码,使它能正常辨别是点击到那一个(改动源码并不建议,有兴趣自行研究)。

转载于:https://www.cnblogs.com/onechen/p/4790503.html

Firemonkey ListView 点击事件相关推荐

  1. Listview点击事件

    listview = (ListView) findViewById(R.id.listview); // 填充data数据 data = new ArrayList<String>(); ...

  2. ListView点击事件失效

    记录下自己所犯的错误,在写ListView的点击事件时OnItemClickListener,onItemClick方法没有执行,导致ListView条目点击事件失效,检查发现百度上有很多不同的答案, ...

  3. android studio listview点击事件,android如何响应listview上不同按钮点击事件

    参考来源:http://www.tuicool.com/articles/bamqiq 大致思路:重写适配器,让主函数继承接口接口 ListItemClickHelp,这个接口中包含onclick方法 ...

  4. Android ListView点击事件无反应

    ListView焦点相关 今天写了一个listview 适配之后设置了点击事件百思不得其解后来看到有篇文章说,可能是xml文件的style不对,不能是 <itemname="Andro ...

  5. 开发笔记:解决安卓GestureOverlayView手势和ListView点击事件、文本框获取焦点冲突的问题

    要解决这个问题,首先要弄清楚几个问题: 1.onThouch事件的触发原理是怎样的? 2.GestureOverlayView的绘制手势的事件是在什么时候触发的? 3.父子嵌套的控件触发事件的顺序是怎 ...

  6. android 项目学习随笔十三(ListView实现ITEM点击事件,将已读状态持久化到本地)...

    1.因为给LISTVIEW增加了两个头布局,所以在点击事件ITEM索引会增加2,比如原来第一条数据的索引应该为0,增加两个头布局后,它的索引变为        2,为了使LISTVIEW的ITEM在点 ...

  7. android 解决ListView点击与滑动事件冲突

    如果你的ListView的Item有滑动功能,但又点击Item跳转到其它activity,这样若是在Adapter里面写点击事件是会导致滑动事件获取不到焦点而失效: 解决方法:不要在adapter里面 ...

  8. 在Activity中响应ListView内部按钮的点击事件的两种方法

    转载:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在 ...

  9. 定制ListView的界面(使用自定义的列表项布局,一边显示水果图片,一边显示水果文字)以及ListView的点击事件

    只能显示一段文本的ListView实在是太过单调,我们现在就来对ListView的界面进行定制,让它可以显示更加丰富的内容. 首先,我们需要准备好一组水果图片,分别对应上面提供的每一种水果,待会我们要 ...

  10. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

最新文章

  1. 约等于全自动爬取CVE基础信息
  2. C++数据结构之链式结构
  3. 七牛云注册创建oss并配置自定义域名
  4. CSS串联和后代选择器
  5. C++11新特性探究:显式override和final
  6. java同事只有竞争吗_如何防止同事竞争破坏公司文化
  7. 如何在CentOS上创建Kubernetes集群
  8. JavaScript模块化编程之AMD
  9. JS中类方法、对象方法、原型方法
  10. powerdesigner16 license key过期问题
  11. 纯css画一个月亮的天气图标
  12. 2014年FME校园培训考核通过名单
  13. 马甲包上架经验总结(珍贵)
  14. 小程序上线后部分图片不显示的问题
  15. markdown 斜体、加粗、公式起止符快捷键
  16. react hook + stamen store + pug实现纯函数无痛版react开发体验
  17. 告别光棍节——见习情圣(恋爱培训导师)
  18. 如何使用域组策略(AD GPO)分发软件安装以及卸载
  19. 跟益达学Solr5之批量索引JSON数据
  20. 一键换肤 自定义css样式实现

热门文章

  1. Yii需要php版本,yii框架2.0.9版本发布了
  2. PAT (Basic Level) Practice1005 继续(3n+1)猜想
  3. Hive metastore入门
  4. [java变量] - 字符串数组转long型数组
  5. iOS之app审核遭遇5.2.1的条例被拒
  6. Appimage版wine乱码解决
  7. SharePoint Framework 企业向导(六)
  8. jQuery 仿写京东轮播广告图
  9. shell脚本获取mysql插入数据自增长id的值
  10. MPMoviePlayerViewController 改良版播放器