活动的根视图是啥意思?

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.xmlMainActivity 的根视图吗?

【问题讨论】:

..... 是您活动的根视图。 IE。 xml 文件中的外部父级 这个 LinearLayout 是你的 MainActivity 的根视图 第一个能够容纳子视图的视图将被称为您的根视图。 What is a rootView?的可能重复 这不是重复的先生......我在 *** 中得到的问题都是关于布局的根视图,而不是关于活动的根视图。我知道这是一个微不足道的问题,但我的好奇心让我发布了这样一个问题。谢谢 【参考方案1】:

MainActivity 的根视图是 LinearLayout

您的活动的根View 表示您的XML 布局的最顶层父布局

根视图可能是RelativeLayoutCoordinatorLayoutConstraintLayoutLinearLayoutFrameLayout

举例

您的 activity_main.xml 包含 LinearLayout 作为父布局,而不是 LinearLayout 是您的根视图,其中包含所有子控件,例如 Buttons、@ 987654334@、EditTextTextView等……

【讨论】:

【参考方案2】:

activity_main.xml 是您的MainActivity 的布局。在布局内部,根视图是顶层视图,在本例中为LinearLayout。也可以是RelativeLayoutCoordinatorLayoutConstraintLayout 等。

【讨论】:

【参考方案3】:

能够容纳子视图的第一个视图将被称为您的根视图。在您的情况下,线性布局将是您的根布局

【讨论】:

【参考方案4】:

activity_main 不是根视图。这是定义活动布局的 XML 文件。

根视图是此布局中的视图,包含所有其他视图。

在您的示例中,根视图是 LinearLayout

当您执行setContentView(R.layout.activity_main); 时,系统将解析 XML 文件并使用属性和所有内容创建定义到其中的所有视图和子视图

例如,如果您的 XML 是这样定义的:

<RelativeLayout
  ...
>
  <TextView
   android:text="HelloWorld"
   ... />
</RelativeLayout>

当视图膨胀时,您会以一个RelativeLayout 对象结束,该对象包含一个TextView 对象,其中一个字段包含“HelloWorld”。 在这个例子中,根视图是RelativeLayout

【讨论】:

以上是关于活动的根视图是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

ThreadPoolExecutor 中的“活动线程”是啥意思?

xml 中的xsi 是啥意思?

电脑atl是啥意思

证书中的“主题”是啥意思? [关闭]

苹果应该通过视图传递@ObjectBinding 是啥意思?

Android Layout Inspector 中的灰色视图是啥意思?