嗨,如果你看看java,最顶层的容器可能是“window”或“JFrame”,我们将在其中列出所有其余的gui组件。在Android中,对于每个活动,我们将在xml中定义一个布局,以便与此活动一起使用。因此,当加载此活动时,它会加载关联的布局。那么这个布局在哪里绘制。我的意思是首先它会创建一个默认窗口并开始在其上绘制布局或者这是如何发生的?
答案 0 :(得分:0)
您可以使用层次结构查看器(http://developer.android.com/tools/help/hierarchy-viewer.html)或调试代码轻松发现它。
答案 1 :(得分:0)
我认为活动的内容(您使用setContentView
设置的内容)嵌入在FrameLayout
中,您可以像这样访问:
View root = findViewById(android.R.id.content);
答案 2 :(得分:0)
hierarchy-viewer在独立版中不推荐使用,请使用monitor
答案 3 :(得分:0)
最顶层的容器是内部类DecorView
,它是FrameLayout
的扩展。您可以找到有关它的一些信息here
答案 4 :(得分:0)
让我们假设以下是你的xml布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center"
android:src="@drawable/golden_gate" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_gravity="center_horizontal|bottom"
android:padding="12dip"
android:background="#AA000000"
android:textColor="#ffffffff"
android:text="Golden Gate" />
</FrameLayout>
将创建此xml以下视图层次结构:
DecorView
直到当前的Android版本实际上是FrameLayout
此信息取自Roman Guy博客,查看this link了解更多信息..