出于好奇,为什么 ConstraintLayout 和 LinearLayout 声明不一致?
Out of curiosity, why are ConstraintLayout and LinearLayout declared inconsistently?
在Android文档中,您需要编写android.support.constraint.ConstraintLayout
来声明一个ConstraintLayout。要声明一个 LinearLayout,您只需要 LinearLayout
。为什么这不一致?
例如:(直接取自 Android 文档)
约束布局
<android.support.constraint.ConstraintLayout ...>
<Button android:id="@+id/button" ...
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent/>
</>
线性布局
<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 ...
而不是 That's Just the Way it Is?
Why isn't this consistent?
LinearLayout
是一个框架 class,在 android.widget
中。框架 LayoutInflater
知道在某些包中查找 android.widget
等裸 class 名称,例如 LinearLayout
.
ConstraintLayout
来自图书馆。框架 LayoutInflater
对这个库一无所知,它不会在 android.widget
或其他框架包中找到 ConstraintLayout
。
对于库提供的 classes,我们需要在 XML 元素中完全限定 class 名称。
在Android文档中,您需要编写android.support.constraint.ConstraintLayout
来声明一个ConstraintLayout。要声明一个 LinearLayout,您只需要 LinearLayout
。为什么这不一致?
例如:(直接取自 Android 文档)
约束布局
<android.support.constraint.ConstraintLayout ...>
<Button android:id="@+id/button" ...
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent/>
</>
线性布局
<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 ...
而不是 That's Just the Way it Is?
Why isn't this consistent?
LinearLayout
是一个框架 class,在 android.widget
中。框架 LayoutInflater
知道在某些包中查找 android.widget
等裸 class 名称,例如 LinearLayout
.
ConstraintLayout
来自图书馆。框架 LayoutInflater
对这个库一无所知,它不会在 android.widget
或其他框架包中找到 ConstraintLayout
。
对于库提供的 classes,我们需要在 XML 元素中完全限定 class 名称。