我有一個平鋪的pan-n-zoom組件,它使用多個FrameLayouts來定位圖像拼貼(縮放),標記(移動但不規模)和控制(既不移動也不縮放)。它工作正常。Android - 獲取視圖的尺寸以便定位它
標記位於帶有topMargin和leftMargin的FrameLayout中。到現在爲止還挺好。
當觸摸某個標記時,我需要打開一個小彈出窗口,其位置與被觸摸的標記相同,但被彈出窗口的尺寸所抵消。也就是說,如果彈出窗口的寬度爲100像素,高度爲50像素,觸摸的標記爲800 x和1100 y,則彈出窗口應該位於750 x(標記的位置減去彈出窗口寬度的一半)和1050 y (標記的位置減去彈出的全部高度)。效果就像一個工具提示 - 在標記處有點小結點等。
彈出的尺寸是基於要顯示的文本而靈活的,並且需要進行計算。
顯然這些尺寸直到佈局發生後纔可用。獲得這些尺寸並作出相應反應的最佳方法是什麼?
(應該提到RelativeLayout不是一個選項)
TYIA。
/編輯 看起來像我可以在onMeasure和onLayout中獲得兒童的維度,但在其中一個處理程序中重新應用新佈局會創建一個無限循環 - 設置一個標誌以抓住第一遍不行。我想更新後的問題是「現在我知道我可以在哪裏獲得信息,我應該如何反應並定位?」