运行时检查 Android Activity 的视图层次结构

3

一个Activity是否可以在不知道所有视图的ID或特殊访问权限(如仪器模式或rooting)的情况下,获取和检查整个视图层次结构,并最好甚至修改它?

例如,是否可能编写一些代码,定位Activity的视图层次结构中的所有EditText实例并对它们进行某些操作?

谢谢。

1个回答

1
有没有可能让一个 Activity 自己获取并检查整个 View 层次结构,最好甚至可以修改它,而不需要特殊的访问权限,比如测试模式或 root 权限? findViewById(android.R.id.content) 返回承载 setContentView() 中提供的内容的 View。除此之外,尝试调用任何 View 上的 getRootView() 方法,以检索“当前视图层次结构中最顶层的视图”。

这似乎是一个不错的方法,可以让我得到锚点,然后通过递归遍历ViewGroups沿着层次结构向下进行。感谢您的建议。 - Cumbayah
先生,您是否知道如何在我的应用程序中获取另一个应用程序的视图层次结构?这是可能的,请参见开发人员助手 - azizbekian
@azizbekian: “这是可能的” - 其实并不是。那个应用程序可能在滥用辅助功能API或自动填充API。但这两个都无法给你另一个应用程序的“View”层次结构。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接