在三星手机上调试我的应用程序时出现奇怪的结果,我没有物理访问权限。我想请用户运行一个经过检测的应用程序来帮助调试。我的应用程序获得一个 view
,其中有一个未知的(对我来说 ;-) 层次结构(ViewGroups
等)。有没有一种方法可以“遍历”View
并打印出字符串/ddms
View
中的所有组件(等等 ViewGroups
等)?
这类似于 HierarchyViewer
工具 - 如果我对设备具有 adb
级别的访问权限。
更新:我想我可以使用这个方法
void dumpViewHierarchyWithProperties(Context context, ViewGroup group, BufferedWriter out, int level)
来自 ViewDebug.java
Android 操作系统源...
谁有更好的主意?
谢谢!
最佳答案
这是我刚刚为此目的制作的效用函数:
public static void printViewHierarchy(ViewGroup vg, String prefix) {
for (int i = 0; i < vg.getChildCount(); i++) {
View v = vg.getChildAt(i);
String desc = prefix + " | " + "[" + i + "/" + (vg.getChildCount()-1) + "] "+ v.getClass().getSimpleName() + " " + v.getId();
Log.v("x", desc);
if (v instanceof ViewGroup) {
printViewHierarchy((ViewGroup)v, desc);
}
}
}
关于android - 在设备上打印 View 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559520/