我什么时候应该在我的Android视图中启动我的瓷砖?

时间:2012-09-07 15:34:41

标签: java android

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

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

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

将瓷砖尺寸存储在相对值中会更合适吗?

这样做的正确方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

当我这样做时,我使用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);
    }
}

就个人而言,我喜欢你只想保留一个布尔值来确定你是否完成了测量。应该同样有效。