背景
在 Android 布局文件中,有很多 UI 元素和视图组。有时我们不需要给视图提供 ID 值(唯一标识符)。在这种情况下,我们无法通过 findViewByid()
找到视图,因此也就不能对它们进行操作。
问题是
如何为任何活动的所有视图生成路径,示例如下:
content>LinearLayout-0>RelativeLayout-3>LinearLayout-0>TextView-2
上述行的含义是
- Content 是主要布局
- LinearLayout 是顶层布局
- RelativeLayout-3 是顶级布局的第三个子元素
- LinearLayout 是第三个 RelativeLayout 的子元素
- TextView-2 是子元素 LinearLayout 的子元素,该 LinearLayout 是顶级 LinearLayout 的第三个 RelativeLayout 子元素。
因此,我要找的函数基本上是以下形式:
String path = getViewPath(view);
和
View view = findViewByPath(path)
使用案例:
服务器会通过提及视图路径向移动应用程序广播一些命令,
然后移动应用程序将从路径中查找视图并更改视图的属性。