我是android的新手,似乎只有viewgroup可以是某些View的父级,但是当我使用DDMS转储应用程序的视图层次结构时,我发现有一个包含一些子级的View。有人可以向我解释一下吗?请看下面的图片:
答案 0 :(得分:0)
这只是猜测,但我认为任何不属于Android提供的ViewGroup实现的ViewGroup都将显示为View,可能会隐藏其他ViewGroups的名称。所以对于开发者来说,这基本上是隐私的事情
答案 1 :(得分:0)
为了调查这个问题,我创建了一个不执行任何操作的自定义ViewGroup:
private static class MyViewGroup extends ViewGroup {
public MyViewGroup(Context _context) { super(_context); }
@Override
protected void onLayout(boolean _changed, int _l, int _t, int _r, int _b)
{ /* nothing... */ }
}
并将其添加到活动的当前内容视图中:
ViewGroup foo = (ViewGroup)
this.getWindow().getDecorView().getRootView().findViewById(android.R.id.content);
foo.addView(new MyViewGroup(this));
eclipse的层次结构查看器也将其标记为“视图”。
此外,我查看了另一个带有子项的“视图”的节点详细信息,并且能够看到资源ID。
在我的例子中,它具有值android:id/action_bar_overlay_layout
,我可以找到要在android.support.v7.internal.widget.ActionBarOverlayLayout
组件的XML布局中使用的resource-id。
它的实现在支持库中,并且真正扩展了Framelayout。
我认为这个问题只是层次结构查看器,只支持标准视图组件的标签。