我创建了一个扩展ViewGroup
的自定义控件。最终,该控件的实现仅使用画布来绘制一些形状,而无需添加任何View
s。
在这种情况下,onLayout
是否应该通过某种常规实现被覆盖,或者我应该给它留一个空的方法?
在这种情况下,应该仍然覆盖
如果您要扩展ViewGroup
,则是的,即使它无需进行抽象方法,就必须实现onLayout()
。或者扩展 FrameLayout
而不是 ViewGroup
。
一般实施将如何?
如果您没有孩子的布局,只需保持空白的身体即可。
编辑
是的,我的意思是如果我应该有某种一般实现或只是将其留为空
请参阅文档:
void onlayout()
从布局调用此视图应分配 每个孩子的大小和位置。派生类 with 儿童应该覆盖此方法,并在每个方法上调用布局 孩子。
如果没有用,则没有意义。没有通用实现,这就是为什么此方法是ViewGroup
中的abstract
。您没有怪物,那么您就不需要布局任何东西。但是你需要(空)由于扩展抽象类而导致的方法。