OnClickListener是否考虑了视图的缩放因子?

时间:2016-08-30 07:35:46

标签: android android-layout android-custom-view android-touch-event

我有一个CustomLayout视图扩展TableLayout并包含LinearLayout行子项,每个子项都包含一个RelativeLayout单元格(每个单元格都有一个 { {1}} )。 OnClickListener还有一个CustomLayout,支持在X / Y轴上滚动/拖动。当比例因子为1(无缩放)时,一切都很好。

问题是每个单元格的ScaleGestureDetector似乎没有考虑OnClickListener的缩放因子,以及随后的单元缩放。因此,如果缩放是2倍并且您单击现在更大的单元格,则实际上您点击了上一个缩放级别中另一个较小单元格的触摸目标。

我不知道这是不是设计或不是(我试图找到一些关于这个问题的文档,但没有找到任何东西)。关于此问题的任何输入/想法?我知道通过聆听CustomLayout触摸事件并将触摸事件位置映射到现在放大/更大的单元格,总是有可能手动实现ClickListener 。但我想知道是否可以使用默认的CustomLayout来实现更简单,更清洁的方法。

1 个答案:

答案 0 :(得分:0)

没关系。显然我正在缩放/翻译画布而不是视图,所以我想布局儿童无法考虑画布已经移动了。

因此,要么缩放/翻译整个视图,不仅要调整它的画布(但这会导致大量动画和丢帧/急动)或仅缩放/翻译画布(这会提高性能)并管理所有触摸事件,例如点击,手动。