只是玩了一下(我知道View.getRootView()),我手动上升到根,甚至更远.
...
View tv=(View)mv.getParent();
View uv=(View)tv.getParent();
...
Run Code Online (Sandbox Code Playgroud)
实际上我觉得有一点我会遇到一个NullPointerException,但我得到了
03-18 13:07:45.554 13568 13568 E AndroidRuntime: java.lang.ClassCastException: android.view.ViewRootImpl cannot be cast to android.view.View
Run Code Online (Sandbox Code Playgroud)
好的,很好,看起来也很合理.
我还不知道ViewRootImpl,所以我决定接受这个话题并稍微调查一下.
但是,当我这样做的时候
ViewRootImpl wv=(View)vv.getParent();
Run Code Online (Sandbox Code Playgroud)
我得到了(当之无愧)
[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] ^
Run Code Online (Sandbox Code Playgroud)
来自编译器,但是,当我根据上面的logcat输出完全限定它时,我得到(几乎)相同的错误消息.(我甚至从logcat输出中复制粘贴它以避免拼写错误.)
不用说,试图import android.view.ViewRootImpl.出现了同样的消息,仅针对另一个源代码行.
此外,即使在整个API文档中使用一个单词,Google似乎也没有发现它有用.我认为它主要用于内部,但如果你问我,这是没有理由的.
ViewRootImplstackoverflow.com上有"138"命中(好吧,现在它应该至少为139),但在这种情况下它们完全不相关(如果我没有错过一些特别的东西).
我已经看了一些其他网站,并发现了这个源代码,但是我怀疑将它伪装到SDK中以便探索它会有用吗?
有什么建议吗?提前致谢