文章目录

  • android约束布ConstraintLayout
    • 常用操作
      • 居中
      • 控件按比例显示
      • 删除约束
      • 屏障约束
      • 动画效果
    • 参考

android约束布ConstraintLayout

  • 官方介绍:https://developer.android.google.cn/training/constraint-layout
  • 官方例子:views-widgets-samples/ConstraintLayoutExamples at master · android/views-widgets-samples

常用操作

居中

  • 如果想让控件居中,设置百分之50即可,如下图

控件按比例显示

  • 如果想让控件按比例展示,首先先把切换为Match Constraints(即 android:layout_width=“0dp”),如下图
  • 然后就可以看到左上角出现三角形
  • 点击三角形即可出现设置比例的ratio

删除约束

  • 在windows上通过按住Ctrl再点击约束即会变成红色,此时就可以删除约束了

屏障约束

  • 首先右键添加一个barrier
  • 添加完后在component tree窗口可以看到该组件
  • 然后就可以把放在屏障里的控件拖拽到barrier里面,如图
  • 最后设置下方向,然后拖动下放进barrier里的控件试试看

  • 如果想实现如下效果,那么就要使用链

  • 框选要组成链的控件后,右键选择chains即可增加水平链或垂直链

  • 之后可以选择对齐方式

  • 在这里可以选择不同的style

  • Spread:视图是均匀分布的(在考虑外边距之后)。这是默认值。

  • Spread inside:第一个和最后一个视图固定在链两端的约束边界上,其余视图均匀分布。

  • Weighted:当链设置为 spread 或 spread inside 时,您可以通过将一个或多个视图设置为“match constraints”(0dp) 来填充剩余空间。默认情况下,设置为“match constraints”的每个视图之间的空间均匀分布,但您可以使用 layout_constraintHorizontal_weight 和 layout_constraintVertical_weight 属性为每个视图分配重要性权重。如果您熟悉线性布局中的 layout_weight 的话,就会知道该样式与它的原理是相同的。因此,权重值最高的视图获得的空间最大;相同权重的视图获得同样大小的空间。

  • Packed:视图打包在一起(在考虑外边距之后)。 然后,您可以通过更改链的头视图偏差调整整条链的偏差(左/右或上/下)

动画效果

  • 在约束布局中可以使用 ConstraintSetTransitionManager 为尺寸和位置元素的变化添加动画效果,注意这种效果只针对位置和尺寸,不包含颜色等其他
  • 而且这种效果的实现需要写两个布局文件,分别作为开始和结束关键帧
fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.keyframe_one)        constraintLayout = findViewById(R.id.constraint_layout) // member variable    }    fun animateToKeyframeTwo() {        val constraintSet = ConstraintSet()        constraintSet.load(this, R.layout.keyframe_two)        TransitionManager.beginDelayedTransition()        constraintSet.applyTo(constraintLayout)    }

参考

  • https://developer.android.google.cn/training/constraint-layout

更多相关文章

  1. androidの布局控件居于最底部实现
  2. android中控件的遮盖问题
  3. Android(安卓)Studio 之 View组件常用属性及其对应的编程接口
  4. Android事件分发机制
  5. Android视图框架
  6. 《Android深入透析》之Android事件分发机制
  7. 自学Android系列 笔记2 Android_RelativeLayout属性大全
  8. Android开发实例详解之IMF(Android(安卓)SDK Sample—SoftKeyboar
  9. Android(安卓)控件布局常用属性

随机推荐

  1. Android SDK r20.x更新时,没有Android API
  2. android webview拦截超链接
  3. Android历史
  4. Android 2011年开发风向标
  5. android shape 代码实现按钮背景
  6. Pyqtdeploy Android PyQtForAndroid 编译
  7. Android基础笔记(五)-网络编程
  8. Android编译系统的架构 简述
  9. [笔记分享] [Android] Android系统概述
  10. Android(安卓)8.1 锁屏界面 壁纸半透明改