我只是随便试试(我确实知道 View.getRootView()
),我手动一步步地向上追溯到根节点甚至更高。
...
View tv=(View)mv.getParent();
View uv=(View)tv.getParent();
...
实际上我曾经认为在某个点上我会遇到NullPointerException
,但是结果却是
03-18 13:07:45.554 13568 13568 E AndroidRuntime: java.lang.ClassCastException: android.view.ViewRootImpl cannot be cast to android.view.View
好的,很好,这看起来也是合理的。
我还不知道 ViewRootImpl
,所以我决定继续研究这个主题并进行一些调查。
然而,当我这样做时
ViewRootImpl wv=(View)vv.getParent();
I get a (deserved)
[javac] /home/jagged/Downloads/android/motog/firsttry/src/tk/wellthen/main.java:285: cannot find symbol
[javac] symbol : class ViewRootImpl
[javac] location: class tk.wellthen.main
[javac] ViewRootImpl wv=(View)vv.getParent();
[javac] ^
虽然我已经按照上面logcat输出的完整限定名称,但仍然从编译器得到相同(几乎相同)的错误信息。 (为了避免打字错误,我甚至将其从logcat输出复制粘贴过来。)
不用说,在尝试导入android.view.ViewRootImpl
时,就会出现相同的消息,只是针对另一行源代码。
此外,Google似乎在整个API文档中都没有提到它,即使只有一个单词也没有。 我认为它主要用于内部,但这并不是理由。
在stackoverflow.com上有138个与“ViewRootImpl
”相关的结果(嗯,现在至少应该有139个),但在这种情况下它们完全无关紧要(如果我没有错过特别的东西)。
我看了一些其他网站,例如这个源代码,但我不知道是否有用来将其伪装成SDK以进行探索?
有什么建议吗? 提前致谢。