我正在制作自动化SKD。因此,我的需求与普通应用程序开发略有不同。
要求: 获取当前活动的View层次结构。 问题: 当Spinner未打开时,我可以正确获取它。但是,在其打开时我无法获取Spinner的详细信息。
我使用以下代码来获取层次结构。问题是: Spinner是否托管在不同的窗口中,这就是为什么我找不到它的原因?该如何解决这个问题呢?
//This is how I start recursion to get view hierarchy
View view = getWindow().getDecorView().getRootView();
if (view instanceof ViewGroup) {
ViewGroup group = (ViewGroup) view;
dumpViewHierarchyWithProperties( group, 0);
}
//Functions to get hierarchy
private void dumpViewHierarchyWithProperties(ViewGroup group,int level) {
if (!dumpViewWithProperties(group, level)) {
return;
}
final int count = group.getChildCount();
for (int i = 0; i < count; i++) {
final View view = group.getChildAt(i);
if (view instanceof ViewGroup) {
dumpViewHierarchyWithProperties((ViewGroup) view, level + 1);
} else {
dumpViewWithProperties(view, level + 1);
}
}
}
private boolean dumpViewWithProperties(View view,int level) {
//Add to view Hierarchy.
return true;
}