ギャラリーを拡張するカスタム Android コントロールを構築しています。ビューがオーバーレイされる効果が必要なので、発行しています
setSpacing(-60);
これを指定すると、ギャラリーに 3 つのアイコンが表示されます。1、3 が最初に描画され、次に 2 が中央のアイコンになります。同じルールが定義されてgetChildDrawingOrder
おり、それを有効にしています
setChildrenDrawingOrderEnabled(true);
ここでの問題は、順序でルールを定義した方法でビューが描画されることです。しかし、ギャラリー コントロールのイベントは、元の表示順序、つまり 1、2、3 になります。よりよく説明するには、
1が描かれ、3が描かれ、最後に2が描かれ、重なり合っています。したがって、ビューには 1 の 50%、2 の 100%、および 3 番目のビューの 50% があります。
しかし、ビューに触れると、アンドロイドは 1 の 50%、2 の 50%、3 の 100% が画面に表示されていると想定します。もう少し明確にするために、1 つのビューの 50% の後、クリックすると 2 がフォーカスされます (これは、私の描画ルールに従って、2 が 1 の上にあるためです)。
しかし、ビュー 2 の 50% の後にどこかをクリックすると、フォーカスは 3 に移動しますが、描画の順序に従って 3 は表示されず、2 の 100% が表示されますが、ビュー 1 の領域の 50% ではフォーカスビュー2です。
イベントの順序を画面上の表示パターンに強制的に従わせることで解決できる方法について、ご意見をお聞かせください。