在 Android 中,您可以创建一个监听器来捕获视图属性的变化(宽度/高度/边距/相对于屏幕顶部的位置)吗?
我想在layout_marginTop =“10dp”更改为不同值时触发事件。
如何实现一个 OnLayoutChangeListener ,当视图因布局更改而移动时会被调用
new View().addOnLayoutChangeListener(new OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft,
int oldTop, int oldRight, int oldBottom) {
// TODO Auto-generated method stub
}
});
摘自 Android API:
添加一个 当视图的边界由于以下原因而发生变化时将调用的侦听器 布局处理。
如果你想直接监听所有属性的变化,答案是否定的。
但是也许你可以监听
draw
提供的preDraw
或ViewTreeObserver
事件并检查这些事件发生时相关属性是否发生变化。
View
是您在屏幕上看到的内容,因此对其任何属性的更改都应该使其自身无效并触发 draw
或 preDraw
事件,对吧?