2012-06-29 33 views
0

我如何跟踪UI元素的位置,比如TableLayout保持跟踪TableLayout的位置?

我的意思是,每当它的位置发生变化时,都会调用某种事件处理程序,然后在事件处理程序代码中可以获得此TableLayout的坐标(也许是其左上角的坐标)

一个示例代码将不胜感激!

由于

回答

0

几乎任何插件或布局具有接收作为左参数,上,右和底部位置onLayout方法。基类android.view.View类甚至有一个此事件的收听者onLayoutChangeListener,但TableLayout没有。所以你可以扩展它并覆盖onLayout方法来做你想做的事情。

+0

感谢您的回复。但是当'TableLayout'的绝对位置改变时,似乎重写的'onLayout'方法不会被调用。 –

+0

如果您重写'TableLayout'的父级的'onLayout',该怎么办? – vasart

+0

感谢您的更新。我试过了,但我没有工作。然后我意识到'TableLayout'的父类是'ScrollView',所以我看[这里](这里是http://stackoverflow.com/questions/3948934/synchronise-scrollview-scroll-positions-android)和[here ](http://stackoverflow.com/questions/2638342/incorrect-coordinates-from-getlocationonscreen-getlocationinwindow)在用户滚动ScrollView时不断获得'TableLayout'的绝对位置。 –