在自定义 RelativeLayout 的 onDraw 方法中绘制的图案会被子 View 挡住,这是因为 onDraw 方法是在子 View 绘制之后调用的。要解决这个问题,你可以使用 dispatchDraw 方法来绘制图案,这个方法会在子 View 绘制之后调用。

下面是一个示例代码:

public class CustomRelativeLayout extends RelativeLayout {

    public CustomRelativeLayout(Context context) {
        super(context);
    }

    public CustomRelativeLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void dispatchDraw(Canvas canvas) {
        super.dispatchDraw(canvas);

        // 在子 View 绘制之后绘制图案
        drawPattern(canvas);
    }

    private void drawPattern(Canvas canvas) {
        // 绘制图案的代码
    }
}

通过重写 dispatchDraw 方法,在子 View 绘制之后再绘制图案,这样图案就不会被子 View 挡住了。

Android 自定义 RelativeLayout 避免图案被子 View 挡住

原文地址: https://www.cveoy.top/t/topic/ETy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录