Что вы подразумеваете под корневым представлением о деятельности?

У меня очень тривиальное замешательство относительно того, что является коренным взглядом на деятельность. Я искал это всюду по 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

Другие вопросы по тегам