0

Iは、TableLayoutを拡張しLinearLayout行子供を含み、それらの各々はRelativeLayoutセル(OnClickListenerを有する個々のセル)を含むCustomLayoutビューを持っています。 CustomLayoutにはScaleGestureDetectorもあり、X/Y軸のスクロール/ドラッグをサポートしています。スケーリング係数が1(スケーリングなし)の場合、すべてが効果的です。OnClickListenerはビューの倍率を考慮していますか?

問題は、各セルのOnClickListenerは、アカウントにCustomLayoutの倍率を取るように見えないし、その後、それが自セルのスケーリングであるということです。したがって、ズームが2倍で現在大きなセルをクリックした場合、実際には、以前のズームレベルから別の小さいセルのタッチターゲットをクリックしたことになります。

これは設計上の問題であるかどうかわかりませんが(この問題に関していくつかのドキュメントを見つけようとしましたが、何も見つかりませんでした)。この問題に関する意見やアイデアはありますか?CustomLayoutのタッチイベントをリッスンし、タッチイベントの位置をズームイン/拡大されたセルにマッピングすることによって、手動でClickListenerを実装する可能性は常に知っています。しかし、より簡単できれいな方法でデフォルトのOnClickListenerを使用できるかどうかを知りたかったのです。

答えて

0

気にしないでください。どうやら私はビューの代わりにキャンバスをスケーリング/変換していたので、キャンバスが移動したことをレイアウトの子どもが考慮することはできないと思う。

キャンバスだけでなく、多くのアニメーションやフレーム/ジャーキネスを引き起こしたり、キャンバスのみを拡大/縮小する(これはパフォーマンスが向上します)。クリックなどのタッチイベントを手動で入力します。

関連する問題