Из любопытства, почему ConstraintLayout и LinearLayout объявлены непоследовательно? - PullRequest
0 голосов
/ 07 апреля 2019

В документации Android вы должны написать android.support.constraint.ConstraintLayout для объявления ConstraintLayout.Чтобы объявить LinearLayout, все, что вам нужно, это LinearLayout.Почему это не соответствует?

Например: (взято непосредственно из документации Android)

ConstraintLayout

<android.support.constraint.ConstraintLayout ...>
             <Button android:id="@+id/button" ...
                 app:layout_constraintLeft_toLeftOf="parent"
                 app:layout_constraintRight_toRightOf="parent/>
         </>

LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="16dp"
   android:paddingRight="16dp"
   android:orientation="horizontal"
   android:gravity="center">

   <!-- Include other widget or layout tags here. These are considered
           "child views" or "children" of the linear layout -->

 </LinearLayout>

Почему вы не можете просто написать <ConstraintLayout ... кроме Это просто так ?

1 Ответ

5 голосов
/ 07 апреля 2019

Почему это не соответствует?

LinearLayout является классом фреймворка, в android.widget.Фреймворк LayoutInflater знает, что в некоторых пакетах, таких как android.widget, можно искать голые имена классов, такие как LinearLayout.

ConstraintLayout из библиотеки.Фреймворк LayoutInflater ничего не знает об этой библиотеке и не найдет ConstraintLayout в android.widget или других пакетах фреймворка.

Для классов, предоставленных библиотекой, нам необходимо полностью квалифицировать классимя в элементе XML.

...