我有一个CustomLayout
扩展TableLayout
并包含LinearLayout
行子级的视图,每个子级都包含一个RelativeLayout
单元格(每个单独的单元格都有一个OnClickListener
)。CustomLayout
也有一个礼物,ScaleGestureDetector
并支持在 X/Y 轴上滚动/拖动。当缩放因子为 1(无缩放)时,一切都很好。
问题是每个单元格似乎OnClickListener
都没有考虑到缩放因子CustomLayout
,因此它是自己的单元格缩放比例。因此,如果缩放为 2 倍并且您单击现在更大的单元格,您实际上是单击了之前缩放级别的另一个较小单元格的触摸目标。
我不知道这是否是设计使然(我试图找到一些关于这个问题的文档,但没有找到任何东西)。关于这个问题的任何输入/想法?我知道总是有可能通过监听触摸事件并将触摸事件位置映射到现在放大/更大的单元格来ClickListener
手动实现。CustomLayout
但我想知道是否可以使用默认值OnClickListener
来获得更简单、更清洁的方法。