有没有办法让我的活动中的每一个视图? 我有超过200个视图,包括按钮和图像,所以我希望能够通过使用循环如何获取活动中的所有视图?
例如像
for (View v : this)
{
//do something with the views
//depending on the types (button, image , etc)
}
有没有办法让我的活动中的每一个视图? 我有超过200个视图,包括按钮和图像,所以我希望能够通过使用循环如何获取活动中的所有视图?
例如像
for (View v : this)
{
//do something with the views
//depending on the types (button, image , etc)
}
访问它们有没有办法让每个视图 在我的活动内?
让您的根View
,将其转换为一个ViewGroup
,叫getChildCount()
和getChildAt()
,以及递归需要。
我有超过200个视图,包括 按钮和图像,所以我想成为 能够通过使用循环
这是一个相当大的数量Views
访问它们。
尝试查找与活动关联的所有视图。
给出以下命令。
ViewGroup viewgroup=(ViewGroup)view.getParent();
viewgroup.getchildcount();
遍历循环。
我们会得到结果。
您可以使用hierarchyviewer,它允许您查看视图层次结构,包括在代码中创建的视图层次结构。主要原因是调试这样的事情。最新的Android Studio现在在设备监视器中具有此功能,可让您转储UI以进行调试。
具体来说:
private void show_children(View v) {
ViewGroup viewgroup=(ViewGroup)v;
for (int i=0;i<viewgroup.getChildCount();i++) {
View v1=viewgroup.getChildAt(i);
if (v1 instanceof ViewGroup) show_children(v1);
Log.d("APPNAME",v1.toString());
}
}
然后使用功能的地方:
show_children(getWindow().getDecorView());
显示当前活动的所有意见。
非常感谢,完美 一个看不见的物体(按钮)挡住了我的整个屏幕,我用这个找出什么物品被阻挡并找到它:) – aryaxt 2010-07-11 00:12:42
SDK自带的'hierarchyviewer'工具可以帮助你发现这样的问题。它可以以树的形式直观地显示应用程序的视图层次结构,使您可以检查每个视图的属性。 – adamp 2010-07-11 02:26:26
我知道,但大多数对象都是通过代码添加到屏幕上的。 – aryaxt 2010-07-14 17:22:57