Что вы подразумеваете под корневым представлением о деятельности?
У меня очень тривиальное замешательство относительно того, что является коренным взглядом на деятельность. Я искал это всюду по Google и переполнению стека. Я получил некоторые знания об этом, но не нашел убедительного решения, так как никто не сказал об этом термине. Вопрос, который похож на мой вопрос, говорит о том, что является корневым представлением данного макета, но мне кажется, что они не определяют корневой вид действия. Хотя ответ на мой вопрос довольно интуитивен, я хочу точный ответ без путаницы. Так вот структура кода. У меня есть следующий класс активности:
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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.android.viewpager.MainActivity">
</LinearLayout>
Так по мне это activity_main.xml
корневой вид MainActivity
?
4 ответа
Коренной взгляд на ваш MainActivity
является LinearLayout
Корень View
вашей активности означает самый верхний родительский макет вашего XML
раскладка
Root View может быть
RelativeLayout
,CoordinatorLayout
,ConstraintLayout
,LinearLayout
,FrameLayout
Например
Ваш activity_main.xml
содержать LinearLayout
в качестве родительского макета, чем LinearLayout
ваш Root View, который содержит все дочерние элементы управления в нем, как Buttons
, Imageview
, EditText
, TextView
, так далее....
Первое представление, которое может содержать дочернее представление, будет называться корневым представлением. В вашем случае Linear Layout будет вашим корневым макетом
activity_main.xml
это макет вашего MainActivity
, Внутри макета корневое представление является верхним иерархическим представлением, которое в данном случае является LinearLayout
, Это также может быть RelativeLayout
, CoordinatorLayout
, ConstraintLayout
и т.п.
activity_main
не является корневым представлением. Это файл XML, в котором определяется макет вашей деятельности.
Корневое представление - это представление в этом макете, содержащее все остальные представления.
В вашем примере корневым представлением является LinearLayout
Когда вы делаете setContentView(R.layout.activity_main);
система проанализирует XML-файл и создаст все представления и подпредставления, определенные в нем, с помощью attibute и всего остального
Например, если ваш XML определен так:
<RelativeLayout
...
>
<TextView
android:text="HelloWorld"
... />
</RelativeLayout>
Когда представление завышено, вы закончите с RelativeLayout
объект, содержащий TextView
объект, содержащий "HelloWorld" в одном из его полей. В этом примере корневое представление является RelativeLayout