我的瓷砖的尺寸取决于屏幕的宽度和高度。
我什么时候应该给他们他们的尺寸?
如果我在 OnSizeChanged 中初始化它们,那么我需要一个布尔值来知道它是否是第一次发生 onSizeChanged。
将我的图块尺寸存储在相对值中是否更合适?
这样做的正确方法是什么?
谢谢
当我这样做时,我使用 a GlobalLayoutListener
,如下所示:
final ViewGroup myViewGroup = (ViewGroup) findViewById(R.id.my_viewgroup);
ViewTreeObserver vto = myViewGroup.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//myViewGroup should now have dimensions, but sometimes
//it takes two passes, so...
if(myViewGroup.getWidth() == 0) return;
//Set whatever stuff here
myTileSizes = whateverSize;
//Remove this listener -- no longer needed
myViewGroup.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
就个人而言,我喜欢你的想法,即你是否已经完成了测量,只保留一个布尔值。应该一样有效。