Android 在我的活动中衡量所有视图时,我如何抓住这一时刻?
我需要知道我的Android 在我的活动中衡量所有视图时,我如何抓住这一时刻?,android,android-activity,Android,Android Activity,我需要知道我的活动中某些视图的正确宽度、高度和位置在onResume之后尽快。我可以将此代码放在我的活动中的何处?奇怪的是,我在创建答案的同一天就可以重用它: 您可以在onResume()中的视图树上设置一个全局布局侦听器,并在其中进行欺骗 final ViewTreeObserver vto = myView.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { publ
活动中某些视图的正确宽度、高度和位置
在onResume
之后尽快。我可以将此代码放在我的活动中的何处?奇怪的是,我在创建答案的同一天就可以重用它:
您可以在onResume()
中的视图树上设置一个全局布局侦听器,并在其中进行欺骗
final ViewTreeObserver vto = myView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
// do layout tweaking based on measurements
// remove the listener... or we'll be doing this a lot.
vto.removeGlobalOnLayoutListener(this);
}
}
奇怪的是,在我做出答案的同一天,我又重新使用了一个答案: 您可以在
onResume()
中的视图树上设置一个全局布局侦听器,并在其中进行欺骗
final ViewTreeObserver vto = myView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
// do layout tweaking based on measurements
// remove the listener... or we'll be doing this a lot.
vto.removeGlobalOnLayoutListener(this);
}
}
我必须使用
vto.isAlive()
并再次调用getViewTreeObserver()
,否则它会因java.lang.IllegalStateException而崩溃:此ViewTreeObserver未激活
。不管怎样,谢谢。啊!很好的发现,很高兴它有帮助。祝你好运。@AndreyNovikov你能告诉我你到底是怎么做的吗?@Danpe,看看我的答案:我必须使用vto.isAlive()
并再次调用getViewTreeObserver()
,否则它会在java.lang.IllegalStateException:这个ViewTreeObserver不是活动的
。不管怎样,谢谢。啊!很好的发现,很高兴它有帮助。祝你好运。@AndreyNovikov你能证明你到底是怎么做到的吗?@Danpe,看看我的答案: