我想在一个活动中获取所有视图。喜欢;
ArrayList<View> views = new Arraylist<>();
views.addAll(getAllViewsFromActivity());
我想要的是“ getAllViewsFromActivity()”函数。我显然想获得所有视图,甚至是一个按钮。但我找不到明确的答案。
为了取得进展,必须像这样:
MainView : getWindow().getDecorView()
- -
RelativeLayout
- -
Button LinearLayout
-
TextView
如何在Android中以编程方式获取这棵树?并且还假设我得到了这棵树,是否还可以识别它们的类型,例如:view instanceof Button?
您想要的视图很清晰。因此您可以使用父视图(例如LinerarLayout)来获取子视图。因此您可以尝试以下方法:
int count = parent.getChildCount();
for(int i =0; i< count;i++){
View child = parent.getChildAt(i);
//here you can to chage the view some proper.
//if you only want to change the background color, it belongs to view, don't
// need to cast.
}