首次自己研究开发安卓项目,欢迎大佬指导教学,对新手提供些思路。
这次介绍的是ConstraintLayout是一个用于在Android应用中创建复杂布局的布局管理器。它提供了一种声明式的方式来定义视图之间的关系和约束条件。与其他布局管理器相比,ConstraintLayout具有更强的灵活性和性能。
ConstraintLayout使用约束条件来定位和调整视图的位置和大小。这些约束条件可以定义视图之间的相对位置,也可以定义视图与父容器之间的位置关系。通过使用约束条件,可以在不同屏幕尺寸和方向下保持布局的一致性。
使用ConstraintLayout,可以通过拖拽和放置视图来创建布局,也可以使用XML代码来定义布局。它支持多种约束条件和属性,如边距、对齐、可见性、权重等。此外,ConstraintLayout还提供了一些额外的功能,如链式布局(Chain)、百分比布局(PercentLayout)和动画过渡效果等。
上面是官方的解释,我说下简单点我自己开发时的理解,每个组件必须依赖其他组件,这里我没试过是否可以绑定多个组件。
下面我们结合代码来看具体数值以及用法。
<Spinner android:id="@+id/textView2" android:layout_width="@dimen/dp130" android:layout_height="@dimen/dp25" android:layout_marginTop="@dimen/dp1" android:background="@drawable/spinner_dropdown_black" android:spinnerMode="dropdown" app:layout_constraintBottom_toBottomOf="@+id/imageView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.821" app:layout_constraintStart_toEndOf="@+id/imageView" app:layout_constraintTop_toTopOf="@+id/imageView" app:layout_constraintVertical_bias="0.0" /> <Spinner android:id="@+id/textView7" android:layout_width="@dimen/dp130" android:layout_height="@dimen/dp25" android:layout_marginTop="@dimen/dp4" android:background="@drawable/spinner_dropdown_black" android:spinnerMode="dropdown" app:layout_constraintStart_toStartOf="@+id/textView2" app:layout_constraintTop_toBottomOf="@+id/textView2" />
上面xml就是textView2约束textView7。都是下拉框。下面我主要针对textView2做解释。
-
android:id="@+id/textView2"
: 给 Spinner 元素分配一个 ID,可以在 Java/Kotlin 代码中引用。这里我是随意命名,其实需要规范,这样在代码中能一眼视意 -
android:layout_width="@dimen/dp130"
: 将 Spinner 的宽度设置为资源文件中指定的尺寸(dp130),可能是 130 个密度无关像素。我建议这个尺寸不要在布局中通过拖拽拉伸来控制它的大小,因为你的代码用到别的板上就尺寸对不上,所以直接手动敲手动改。 -
android:layout_height="@dimen/dp25"
: 将 Spinner 的高度设置为资源文件中指定的尺寸(dp25),可能是 25 个密度无关像素。这是高。 -
android:layout_marginTop="@dimen/dp1"
: 在 Spinner 的顶部添加一个 1 个密度无关像素的外边距。这是距离顶部的约束组件有多远 -
android:background="@drawable/spinner_dropdown_black"
: 将 Spinner 的背景设置为名为 "spinner_dropdown_black" 的可绘制资源。这是你组件的背景,美化你的组件 -
android:spinnerMode="dropdown"
: 指定 Spinner 的模式为下拉模式,表示它将在下拉列表中显示选项。 -
app:layout_constraintBottom_toBottomOf="@+id/imageView"
: 将 Spinner 底部与 ID 为 "imageView" 的元素底部对齐。约束 -
app:layout_constraintEnd_toEndOf="parent"
: 将 Spinner 的结束边与其父元素的结束边对齐。父元素就是你的在哪个布局中 -
app:layout_constraintHorizontal_bias="0.821"
: 设置 Spinner 的水平偏移为 0.821,表示相对于约束的水平位置。这个就是水平移动 -
app:layout_constraintStart_toEndOf="@+id/imageView"
: 将 Spinner 的开始与 ID 为 "imageView" 的元素的结束对齐。 -
app:layout_constraintTop_toTopOf="@+id/imageView"
: 将 Spinner 的顶部与 ID 为 "imageView" 的元素的顶部对齐。 -
app:layout_constraintVertical_bias="0.0"
: 设置 Spinner 的垂直偏移为 0.0,表示相对于约束的垂直位置。
上面都是一些概念东西,下面我们结合实际开发,边开发边使用,这样才能加深记忆。
简单开发鼠标点击你要的约束的组件,再点击上面红色方框中的绿色点。按住鼠标移动你会发现它可以绑定其它布局。
这次只聊约束布局,有什么不对的大佬来交流,我认为安卓开发还是有前景的。能和硬件打交道,基本上属于全栈工程师,薪资也还可以。