在以下代码段中,onDraw
方法被调用大约10-15次。任何人都可以解释这种行为
LinearLayout ll = new LinearLayout(this);
View v = new View(this) {
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
System.out.println("large view on draw called");
super.onDraw(canvas);
}
};
v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 2000));
LinearLayout ll2 = new LinearLayout(this);
ll2.addView(v);
ScrollView sv = new ScrollView(this);
sv.addView(ll2);
ll.addView(sv);
LinearLayout ll1 = new LinearLayout(this);
ll1.addView(ll);
答案 0 :(得分:3)
每当您执行可能影响窗口小部件的操作时,窗口小部件都将重新绘制。将小部件放在容器中可能会影响它。将容器放在另一个容器中可能会影响它。
你不应该假设onDraw()
被调用多少次,除了它会被调用很多次因此需要很快。