如果里面没有意见,则应覆盖Onlayout



我创建了一个扩展ViewGroup的自定义控件。最终,该控件的实现仅使用画布来绘制一些形状,而无需添加任何Views。

在这种情况下,onLayout是否应该通过某种常规实现被覆盖,或者我应该给它留一个空的方法?

在这种情况下,应该仍然覆盖

如果您要扩展ViewGroup,则是的,即使它无需进行抽象方法,就必须实现onLayout()。或者扩展 FrameLayout而不是 ViewGroup

一般实施将如何?

如果您没有孩子的布局,只需保持空白的身体即可。

编辑

是的,我的意思是如果我应该有某种一般实现或只是将其留为空

请参阅文档:

void onlayout()

从布局调用此视图应分配 每个孩子的大小和位置。派生类 with 儿童应该覆盖此方法,并在每个方法上调用布局 孩子。

如果没有用,则没有意义。没有通用实现,这就是为什么此方法是ViewGroup中的abstract。您没有怪物,那么您就不需要布局任何东西。但是你需要(空)由于扩展抽象类而导致的方法。

最新更新