我想知道是否有可能得到一个decorViews的孩子。例如,如果我有一个decorView对象,并且我知道decorView的子节点是FrameLayout,那么我是否只能使用其父节点来获取FrameLayout对象?
显然我可以用传统方式使用getViewById(),但是如果我只想使用父对象,是否可以获取FrameLayout对象?
谢谢,
答案 0 :(得分:1)
你在谈论对象继承吗?
如果是这种情况,则很简单:投下它。
假设你有一个“Foo”类,它是“Bar”的祖先类(换句话说:Bar是Foo的“孩子”),那么请举个例子:
Foo myFoo = getSomeFoo();
Bar myBar = (Bar)myFoo;
因此,请根据您的问题进行调整:
View myView = getDecorView();
FrameLayout myFrameLayout = (FrameLayout) myView;
或:
FrameLayout myFrameLayout = (FrameLayout) getDecorView();
如果ClassCastException
返回的实例不 a getDecorView
(或者(in)它的直接子类)。只需添加一个try / catch块,或向包含该行的方法添加FrameLayout
声明。无论什么最适合你。