[問題] 如何讀取view的位置(position)

看板AndroidDev作者 (ma)時間13年前 (2011/03/06 18:39), 編輯推噓0(0010)
留言10則, 3人參與, 最新討論串1/1
開發層: 應用 問題: 如題,要怎麼讀取view在螢幕上顯示的座標 我弄了一個TextView (也有試過Button) 然後想要顯示他的座標 但我試過了 getLeft(),getTop(),getLocationOnScreen() 傳回值都是0 (另外也試過 getHight(), getWidth(), getMesureWidth()...也都是0..) 我在想是不是該TextView 的 onMeasure() onLayout還沒有結束 所以還沒辦法讀到座標 不知道又有什麼方法可以確定View以精確實配置在螢幕上 然後再去執行getLeft() 以便得知其座標 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.248.32

03/06 18:48, , 1F
應該要等onLayout完才能確定位置吧
03/06 18:48, 1F

03/06 18:49, , 2F
恩恩 那有什麼方法可以確定onLayout跑完嗎 ~"~?
03/06 18:49, 2F

03/06 18:52, , 3F
你override onLayout 那時的參數應該就有你要的資料了
03/06 18:52, 3F

03/07 12:38, , 4F
View parent = (View)yourView.getParent();
03/07 12:38, 4F

03/07 12:39, , 5F
parent.post(new Runnable(){
03/07 12:39, 5F

03/07 12:39, , 6F
public void run() {
03/07 12:39, 6F

03/07 12:40, , 7F
yourView.getHitRect(r)
03/07 12:40, 7F

03/07 12:41, , 8F
這樣他就會que在parent結束後找rect
03/07 12:41, 8F

03/07 12:48, , 9F
http://pastebin.com/99Dc75Qk 這樣比較清楚
03/07 12:48, 9F

03/07 15:35, , 10F
喔喔 感謝J大 趕快來試試看XD
03/07 15:35, 10F
文章代碼(AID): #1DSsH4BU (AndroidDev)
文章代碼(AID): #1DSsH4BU (AndroidDev)