安卓开发Java-布局ConstraintLayout

首次自己研究开发安卓项目,欢迎大佬指导教学,对新手提供些思路。

这次介绍的是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做解释。

  1. android:id="@+id/textView2": 给 Spinner 元素分配一个 ID,可以在 Java/Kotlin 代码中引用。这里我是随意命名,其实需要规范,这样在代码中能一眼视意

  2. android:layout_width="@dimen/dp130": 将 Spinner 的宽度设置为资源文件中指定的尺寸(dp130),可能是 130 个密度无关像素。我建议这个尺寸不要在布局中通过拖拽拉伸来控制它的大小,因为你的代码用到别的板上就尺寸对不上,所以直接手动敲手动改。

  3. android:layout_height="@dimen/dp25": 将 Spinner 的高度设置为资源文件中指定的尺寸(dp25),可能是 25 个密度无关像素。这是高。

  4. android:layout_marginTop="@dimen/dp1": 在 Spinner 的顶部添加一个 1 个密度无关像素的外边距。这是距离顶部的约束组件有多远

  5. android:background="@drawable/spinner_dropdown_black": 将 Spinner 的背景设置为名为 "spinner_dropdown_black" 的可绘制资源。这是你组件的背景,美化你的组件

  6. android:spinnerMode="dropdown": 指定 Spinner 的模式为下拉模式,表示它将在下拉列表中显示选项。

  7. app:layout_constraintBottom_toBottomOf="@+id/imageView": 将 Spinner 底部与 ID 为 "imageView" 的元素底部对齐。约束

  8. app:layout_constraintEnd_toEndOf="parent": 将 Spinner 的结束边与其父元素的结束边对齐。父元素就是你的在哪个布局中

  9. app:layout_constraintHorizontal_bias="0.821": 设置 Spinner 的水平偏移为 0.821,表示相对于约束的水平位置。这个就是水平移动

  10. app:layout_constraintStart_toEndOf="@+id/imageView": 将 Spinner 的开始与 ID 为 "imageView" 的元素的结束对齐。

  11. app:layout_constraintTop_toTopOf="@+id/imageView": 将 Spinner 的顶部与 ID 为 "imageView" 的元素的顶部对齐。

  12. app:layout_constraintVertical_bias="0.0": 设置 Spinner 的垂直偏移为 0.0,表示相对于约束的垂直位置。

上面都是一些概念东西,下面我们结合实际开发,边开发边使用,这样才能加深记忆。

简单开发鼠标点击你要的约束的组件,再点击上面红色方框中的绿色点。按住鼠标移动你会发现它可以绑定其它布局。

这次只聊约束布局,有什么不对的大佬来交流,我认为安卓开发还是有前景的。能和硬件打交道,基本上属于全栈工程师,薪资也还可以。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值