onDraw,onmeasure没有被调用

时间:2011-01-27 12:22:44

标签: android

我有一个具有gridview的LinearLayout:

public class ParentClass implements OnClickListener , OnFocusChangeListener
{

//instance variables.
//constructors.
//initialization method:

public initMethod()
 {
  //initializes gridview , set adapters, listeners etc.
  //+ code for adding gridview to linear layout etc.
 }
//other methods
...
}
class Grid extends ViewGroup{

        private GridView _gridView = null;      
        Grid()
        {
        super(MyActivity);
        //code for grid-view initialization goes here
        }

        public void setAdapter(GridViewAdapter gridViewAdapter) {
            // TODO Auto-generated method stub
            _gridView.setAdapter(gridViewAdapter);

        }

        @Override
         protected void onDraw(android.graphics.Canvas canvas) {
             super.onDraw(canvas);


         }
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
        {
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        }

        @Override
        protected void onLayout(boolean changed, int l, int t, int r, int b) {
            // TODO Auto-generated method stub
            int i = 0;
        }
    }
}

现在我希望当我在我的Grid类的重写方法中放置一个breakpint时,它应该会命中!为什么Breakpoint不受打击?我错过了一些基本的东西吗?

1 个答案:

答案 0 :(得分:0)

根据问题评论,Grid已实例化但未添加到布局中,因此它从未构成View层次结构的一部分,因此没有任何内容可以将其称为onLayout()等。

在Grid._gridView中引用的包含的GridView实例,确实被添加到布局中,因此造成了混乱。

可能Grid类应该扩展GridView而不是包含它。