Java 无法包装RelativeLayout,但子类化isn';不合适

Java 无法包装RelativeLayout,但子类化isn';不合适,java,android,Java,Android,我正试图在Android中创建一个视图的子类,其中显示了一系列shapedrawable。这些形状可绘制对象响应用户事件。在内部,我的视图有一个通过编程创建的RelativeLayout成员变量,用于布局绘图表。我本来打算通过调用我的onDraw/onMeasure/etc方法中的RelativeLayout的

我正试图在Android中创建一个
视图
的子类,其中显示了一系列
shapedrawable
。这些形状可绘制对象响应用户事件。在内部,我的
视图
有一个通过编程创建的
RelativeLayout
成员变量,用于布局
绘图表
。我本来打算通过调用我的
onDraw
/
onMeasure
/etc方法中的
RelativeLayout的
/
onMeasure
/etc方法,将我的
视图
视为
RelativeLayout
的包装。事实证明,这些方法是受保护的,因此我无法访问它们


我应该如何进行?我对子类
RelativeLayout
犹豫不决,因为我的视图不是真正的
RelativeLayout
,因此它没有通过“IS a”测试。我只需要将
RelativeLayout
中的方法挂接到我的draw/measure etc方法中,是否有其他方法可以做到这一点。

您必须扩展RelativeLayout来处理onDraw/onMeasure。至于“Is A”原则,您可以扩展视图组RelativeLayout的超类

但是扩展视图组的问题是,视图组类定义了不适合我的视图的方法。它不应该能够添加或删除视图等,并且它不是包含任意视图子级的通用视图组。涉及相对布局的唯一原因是,它可以帮助我在内部设置一些内容。我不希望ViewGroup定义的任何公共方法能够修改我的视图。因此,扩展RelativeLayout没有问题,这不会验证“是”原则