activity 的根视图是什么意思?
What do you mean by root view of an activity?
关于什么是 activity 的根视图,我有一个非常微不足道的困惑。我在 google 和堆栈溢出中搜索了这个。我对此有一些了解,但没有得出令人信服的解决方案,因为没有人明确说明该术语。这个问题似乎与我的问题相似,它讲述了给定布局的根视图是什么,但对我来说,它们似乎没有指定 activity is.Though 的根视图,这是我问题的答案非常直观,我想要一个明确的答案,没有 confusion.So 这里是代码结构。
我有以下 activity class :
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);
}
}
当我创建 activity 时与之关联的 XML 代码是 (activity_main.xml) :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.android.viewpager.MainActivity">
</LinearLayout>
根据我的说法,这是 activity_main.xml
MainActivity
的根视图吗?
您的 MainActivity
的根视图是 LinearLayout
您的 Activity 的根 View
表示您的 XML
布局的最顶层父布局
The Root View may be a RelativeLayout
, CoordinatorLayout
, ConstraintLayout
, LinearLayout
,FrameLayout
例如
您的 activity_main.xml
包含 LinearLayout
作为父布局而不是 LinearLayout
是您的根视图其中包含所有子控件,如 Buttons
、Imageview
、EditText
、TextView
等....
activity_main.xml
是您的 MainActivity
的布局。在布局内部,根视图是顶层视图,在本例中是 LinearLayout
。它也可以是 RelativeLayout
、CoordinatorLayout
、ConstraintLayout
等
activity_main
不是根视图。这是定义 activity 布局的 XML 文件。
根视图是此布局中的视图,包含所有其他视图。
在您的示例中,根视图是 LinearLayout
当您执行 setContentView(R.layout.activity_main);
时,系统将解析 XML 文件并使用属性和所有内容创建定义到其中的所有视图和子视图
例如,如果您的 XML 定义如下:
<RelativeLayout
...
>
<TextView
android:text="HelloWorld"
... />
</RelativeLayout>
当视图 膨胀 时,您将以一个 RelativeLayout
对象结束,该对象包含一个 TextView
对象,其中一个对象包含 "HelloWorld"领域。
在此示例中,根视图是 RelativeLayout
能够容纳子视图的第一个视图将称为您的根视图。在您的情况下,线性布局将是您的根布局
关于什么是 activity 的根视图,我有一个非常微不足道的困惑。我在 google 和堆栈溢出中搜索了这个。我对此有一些了解,但没有得出令人信服的解决方案,因为没有人明确说明该术语。这个问题似乎与我的问题相似,它讲述了给定布局的根视图是什么,但对我来说,它们似乎没有指定 activity is.Though 的根视图,这是我问题的答案非常直观,我想要一个明确的答案,没有 confusion.So 这里是代码结构。 我有以下 activity class :
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);
}
}
当我创建 activity 时与之关联的 XML 代码是 (activity_main.xml) :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.android.viewpager.MainActivity">
</LinearLayout>
根据我的说法,这是 activity_main.xml
MainActivity
的根视图吗?
您的 MainActivity
的根视图是 LinearLayout
您的 Activity 的根 View
表示您的 XML
布局的最顶层父布局
The Root View may be a
RelativeLayout
,CoordinatorLayout
,ConstraintLayout
,LinearLayout
,FrameLayout
例如
您的 activity_main.xml
包含 LinearLayout
作为父布局而不是 LinearLayout
是您的根视图其中包含所有子控件,如 Buttons
、Imageview
、EditText
、TextView
等....
activity_main.xml
是您的 MainActivity
的布局。在布局内部,根视图是顶层视图,在本例中是 LinearLayout
。它也可以是 RelativeLayout
、CoordinatorLayout
、ConstraintLayout
等
activity_main
不是根视图。这是定义 activity 布局的 XML 文件。
根视图是此布局中的视图,包含所有其他视图。
在您的示例中,根视图是 LinearLayout
当您执行 setContentView(R.layout.activity_main);
时,系统将解析 XML 文件并使用属性和所有内容创建定义到其中的所有视图和子视图
例如,如果您的 XML 定义如下:
<RelativeLayout
...
>
<TextView
android:text="HelloWorld"
... />
</RelativeLayout>
当视图 膨胀 时,您将以一个 RelativeLayout
对象结束,该对象包含一个 TextView
对象,其中一个对象包含 "HelloWorld"领域。
在此示例中,根视图是 RelativeLayout
能够容纳子视图的第一个视图将称为您的根视图。在您的情况下,线性布局将是您的根布局