活动的根视图是啥意思?
Posted
技术标签:
【中文标题】活动的根视图是啥意思?【英文标题】:What do you mean by root view of an activity?活动的根视图是什么意思? 【发布时间】:2018-05-26 03:54:41 【问题描述】:关于什么是活动的根视图,我有一个非常微不足道的困惑。我在整个谷歌和堆栈溢出中搜索了这个。我对此有所了解,但没有得出令人信服的解决方案,因为没有人清楚地说明该术语。似乎与我的问题相似的问题告诉了给定布局的根视图是什么,但对我来说,他们似乎没有指定活动的根视图是。虽然我的问题的答案很直观,但我想要一个明确的答案,没有混淆。所以这里是代码结构。 我有以下活动课程:
package com.example.android.viewpager;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
当我创建活动时与之关联的 XML 代码是 (activity_main.xml):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical"
tools:context="com.example.android.viewpager.MainActivity">
</LinearLayout>
所以在我看来,activity_main.xml
是 MainActivity
的根视图吗?
【问题讨论】:
..... 是您活动的根视图。 IE。 xml 文件中的外部父级 这个 LinearLayout 是你的 MainActivity 的根视图 第一个能够容纳子视图的视图将被称为您的根视图。 What is a rootView?的可能重复 这不是重复的先生......我在 *** 中得到的问题都是关于布局的根视图,而不是关于活动的根视图。我知道这是一个微不足道的问题,但我的好奇心让我发布了这样一个问题。谢谢 【参考方案1】:MainActivity
的根视图是 LinearLayout
您的活动的根View
表示您的XML
布局的最顶层父布局
根视图可能是
RelativeLayout
、CoordinatorLayout
、ConstraintLayout
、LinearLayout
、FrameLayout
举例
您的 activity_main.xml
包含 LinearLayout
作为父布局,而不是 LinearLayout
是您的根视图,其中包含所有子控件,例如 Buttons
、@ 987654334@、EditText
、TextView
等……
【讨论】:
【参考方案2】:activity_main.xml
是您的MainActivity
的布局。在布局内部,根视图是顶层视图,在本例中为LinearLayout
。也可以是RelativeLayout
、CoordinatorLayout
、ConstraintLayout
等。
【讨论】:
【参考方案3】:能够容纳子视图的第一个视图将被称为您的根视图。在您的情况下,线性布局将是您的根布局
【讨论】:
【参考方案4】:activity_main
不是根视图。这是定义活动布局的 XML 文件。
根视图是此布局中的视图,包含所有其他视图。
在您的示例中,根视图是 LinearLayout
当您执行setContentView(R.layout.activity_main);
时,系统将解析 XML 文件并使用属性和所有内容创建定义到其中的所有视图和子视图
例如,如果您的 XML 是这样定义的:
<RelativeLayout
...
>
<TextView
android:text="HelloWorld"
... />
</RelativeLayout>
当视图膨胀时,您会以一个RelativeLayout
对象结束,该对象包含一个TextView
对象,其中一个字段包含“HelloWorld”。
在这个例子中,根视图是RelativeLayout
【讨论】:
以上是关于活动的根视图是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
ThreadPoolExecutor 中的“活动线程”是啥意思?