ViewParent如何投射到View中?

How can ViewParent be cast into View?

此代码:

(View) contentView.getParent();

我不太明白:ViewParent 是一个接口,View 是一个 class 没有实现该接口。

它们是如何相互转化的?

这在大多数情况下都有效,因为大多数 ViewParentViewGroup

ViewGroup 扩展了 View 并实现了 ViewParent,因此它同时满足了两者。

ViewParent 是一个单独的接口的原因是这不会 总是 工作:如果你继续向上树,你最终会找到一个ViewParent 不是 ViewGroup(具体来说,你会到达 ViewRootImpl),因此也不是 View,这将导致 ClassCastException.