Java 我应该什么时候在Android视图中初始化我的互动程序?

Java 我应该什么时候在Android视图中初始化我的互动程序?,java,android,Java,Android,我的瓷砖的尺寸取决于屏幕的宽度和高度 我应该什么时候给他们尺寸 如果我在OnSizeChanged中初始化它们,那么我需要一个布尔值来知道它是否是第一次发生OnSizeChanged 将我的平铺尺寸存储在相对值中是否更合适 正确的方法是什么 谢谢当我这样做的时候,我使用了一个GlobalLayoutListener,类似这样的东西: final ViewGroup myViewGroup = (ViewGroup) findViewById(R.id.my_viewgroup); ViewTre

我的瓷砖的尺寸取决于屏幕的宽度和高度

我应该什么时候给他们尺寸

如果我在OnSizeChanged中初始化它们,那么我需要一个布尔值来知道它是否是第一次发生OnSizeChanged

将我的平铺尺寸存储在相对值中是否更合适

正确的方法是什么


谢谢

当我这样做的时候,我使用了一个
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);
    }
}
就我个人而言,我喜欢你的想法,不管你是否进行了测量,都只保留一个布尔值。应该同样有效