onDraw 无法正常工作

onDraw doesn't work properly

我用一个新的覆盖了 RelativeLayout class:

public class myRelative extends RelativeLayout{
//...
//this function is called but layout is not filled
@Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        canvas.drawColor(Color.WHITE);
    }
//...
}

XML 文件如下所示:

 <myRelative
                    android:id="@+id/someid"
                    android:clipChildren="false"
                    android:clipToPadding="false"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical" >
....
</....>

此布局的行为与往常一样RelativeLayout?为什么什么都没有改变?有什么想法吗?

尝试在自定义视图的所有构造函数中设置 setWillNotDraw(false);。或者您的自定义视图可能位于 xml 中,其中父视图也有 WHITE 背景。

布局有特殊优化。如果没有设置背景,则不会调用 onDraw,因为布局应该是一个空视图。每次只调用dispatchDraw