Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:Can';不导入ViewRoot_Android - Fatal编程技术网

Android 安卓:Can';不导入ViewRoot

Android 安卓:Can';不导入ViewRoot,android,Android,我正在编写一个应用程序,我想从一个视图对象开始,使用getParent()沿着视图层次结构走到ViewRoot,我希望使用instanceof来检测它 看起来很简单,但我已经有麻烦了,因为我似乎无法导入ViewRoot。在我的电话线上: import android.view.ViewRoot; 我得到: 无法解析导入android.view.ViewRoot 我已经在这个环境中编写了几十个应用程序,在阳光下导入所有东西,但我从来没有遇到过这样的问题 Eclipse 3.52,目标是Andro

我正在编写一个应用程序,我想从一个
视图
对象开始,使用
getParent()
沿着
视图
层次结构走到
ViewRoot
,我希望使用
instanceof
来检测它

看起来很简单,但我已经有麻烦了,因为我似乎无法导入
ViewRoot
。在我的电话线上:

import android.view.ViewRoot;
我得到:

无法解析导入android.view.ViewRoot

我已经在这个环境中编写了几十个应用程序,在阳光下导入所有东西,但我从来没有遇到过这样的问题


Eclipse 3.52,目标是Android 2.2及更高版本。

没有可导入的类
ViewRoot

如果您只需要顶层视图,那么
view.getRootView()
会提供您所需要的吗?

正如@Phillip Fitzsimmons所说,您可能需要这种方法:

View.getRootView()

ViewRoot类确实存在,但您无法从android sdk访问它。我不知道为什么。你可以看到它的代码

更新:对评论的回应。你可以这样横穿父母

Log.d(TAG, "traversing parents of " + currentView);
ViewParent vp = currentView.getParent();
View rootView = currentView.getRootView();
while (vp != null) {
    Log.d(TAG, "Parent: " + vp);
    vp = vp.getParent();
    if (vp.equals(rootView))
        break;
}

android.view.ViewRoot在某些时候似乎已被弃用。它(至少)在build1.0R1()中,并且似乎仍然存在于姜饼中(请参阅android.view包中的ViewRoot链接)。当然,棒棒糖已经消失了(可能更早)。 ...
更新:我刚刚查看了grepcode.com,它显示android.view.ViewRoot在1.5_r4中排名第一,在2.3.7_r1中排名最后。

该类是框架的一部分,而不是公共SDK的一部分,因此普通应用程序无法使用它。我在谷歌上搜索了“import android.view.ViewRoot”,并获得了超过100K的点击率。我想一层一层地向上走,并在前进的过程中显示每个视图类对象。所以我不想得到根视图,我只想知道我什么时候到了那里,也就是说,什么时候我完成了。不,因为我想一层一层地往上走,并在前进的过程中显示每个视图类对象。所以我不想“得到”根视图,我只想知道我什么时候到了那里,也就是说,我想知道我什么时候到了顶端。哦,我明白了。那么,当你转到根视图时,它会不会工作,而不是使用isinstance来比较层次结构:view.getParent().equals(originalView.getRootView())?我决定在开始遍历树之前先做一个getRootView(),然后当我得到每个更高的父视图时,我会将它与之比较,以查看我何时处于顶端,基本上就是你上面描述的。我已经测试过了,效果很好。谢谢