首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android从零单排系列三十四】《Android布局介绍——ConstraintLayout

app:layout_constraintBottom_toBottomOf:将视图底部边与给定视图底部对齐。...四 ConstraintLayout简单案例 以下是一个简单ConstraintLayout案例,展示了如何使用ConstraintLayout来排列和对齐视图: <?...TextView 2位于TextView 1的底部,并与父容器的左右边缘对齐。同时,它的底部边缘与Button的顶部边缘对齐。 Button位于TextView 2的底部,并与父容器的左右边缘对齐。...同时,它的底部边缘与父容器的底部边缘对齐。 通过这样的约束条件,我们可以实现一种垂直排列的布局,其中TextView 1位于顶部,TextView 2位于其下方,Button位于最底部。...你可以根据需要修改和扩展这个简单的案例,以满足实际的界面需求。 五 总结 ConstraintLayout的工作原理是通过设置视图之间的宽度、高度和相对位置的约束条件来实现。

33320
您找到你想要的搜索结果了吗?
是的
没有找到

Android Notes|细数「八大布局」那些事儿

这里简单的整理了一部分,按照个人使用频率排序: ConstraintLayout: 约束布局 LinearLayout: 线性布局 RelativeLayout: 相对定位布局 FrameLayout:...一星简单了解,面试和面试官吹个水就好~ 反正知道肯定要比什么都不知道要强很多的~ 文中借用图片,文末均以附上地址链接~ 一、ConstraintLayout ⭐️⭐️⭐️⭐️⭐️ ConstraintLayout...{ implementation "androidx.constraintlayout:constraintlayout:2.0.4" } 当然如果你的 Android Studio 升级最新版本...View 底部 layout_constraintBaseline_toBaselineOf 当前 View 与目标 View 文字基线对齐 layout_constraintStart_toEndOf...android:baselineAlignedChildIndex 指定基线对齐的子 View 来个简单的效果: [b2ad78edde55433fa204b0ee1a274223~tplv-k3u1fbpfcp-watermark.image

1.8K00

Android入门教程 | 使用 ConstraintLayout 构建自适应界面

ConstraintLayout 可使用扁平视图层次结构(无嵌套视图组)创建复杂的大型布局。...因此,视图的垂直平面(左侧和右侧)只能约束在另一个垂直平面上;而基准线则只能约束其他基准线上。 每个约束句柄只能用于一个约束条件,但您可以在同一定位点上创建多个约束条件(从不同的视图)。...指定位置的字眼,如Top、Bottom、End、Start,它们组合使用可用来确定相对位置:app:layout_constraint{}_to{}Of 相对父 layout 的定位 将子 view 对齐父...> 基线对齐 将一个视图的文本基线与另一视图的文本基线对齐。...屏障不会定义自己的位置;相反,屏障的位置会随着其中所含视图的位置而移动。 如果希望将视图限制一组视图而不是某个特定视图,这就非常有用。 竖直屏障示例 这是一个竖直屏障的例子。

2.1K10

ConstraintLayout 之 Guideline、Barrier、Chains和Groups

前言 今天来了解一下ConstraintLayout的新功能,即标准线、隔离线、链和组。...文件中添加如下代码: implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta1' Guidelines 可以简化视图布局的对齐方式...Barrier可以是垂直或水平的,并且可以创建引用视图的顶部、底部、左侧或右侧。 以下示例可以看出,当调整TextView的大小时,Barrier调整其大小和受限视图移动。 ?...ConstraintLayout中的一个组仅包含对视图ID的引用,而不将组合中的视图嵌套。这样一来,您可以设置组中控件的可见性仅通过设置组的可见性就行了,而无需设置每个视图的可见性。...> layout_constraintCircle:引用另一个控件的ID layout_constraintCircleRadius:其他控件中心的距离 layout_constraintCircleAngle

1.3K50

【约束布局】ConstraintLayout 约束布局 ( 简介 | 引入依赖 | 基本操作 | 垂直定位约束 | 角度定位约束 | 基线约束 )

, 其 解决了 开发 复杂布局 , 出现的布局嵌套过多问题 , 减少了界面绘制的时间 ; 2.意义 : 使用 ConstraintLayout , 视图层级会变得非常精简 , 并在 Android Studio...转换 与 添加 ConstraintLayout 转换 与 添加 : 1.转换布局 : ① 进入布局界面 : 在 Android Studio 打开布局文件 , 选择 Design 视图 ; ② 转换操作...) 位置的约束 , 2> 约束目标位置 : toBottomOf 的含义是 设置其 目标约束位置 , 即 某个组件的 Bottom ( 底部 ) , 3> 属性值 : 该属性的值 就是 目标约束组件...基线约束 ( 1 ) 基线约束 ( app:layout_constraintBaseline_toBaselineOf ) 基线约束 : 1.作用 : 用于 文本对齐 , 如果 两个视图中有 文字 ,...可以使用 基线约束 将两个 视图中的 文本 进行对齐操作 ; 2.设置方法 : 点击 基线约束 按钮 , 鼠标左键按住 并拖动 另一个组件的基线 , 将该组件的基线约束 另外 一个组件的基线上 ,

3.4K41

自律给你自由——Android设计布局的新姿势

这个界面主要分成下面几个部分: 左侧边栏,包括Palette组件库和Component Tree 中间是布局设计器,包括两部分,左边是视图预览,右边是布局约束 右侧边栏,上面是类似盒子模型的边界和大小布局设计器...约束类型 简单的说,约束,就是组件与组件之间的关系,借用官网上的一张图,我们来解释下: ?...这里展示的,就是左右两个Button直接的关系,这实际上就是一个简单的相对布局方式,下面我们来看一下具体的约束类型。 当我们点击一个控件的时候,它的显示效果如图所示: ?...在这里,可以快速设置组件的居中,对齐等方式。 10GuideLine 为了更加灵活的布局,ConstraintLayout还提供了一个GuideLine,如图所示: ?...『期望组件的顶部,与指定组件的底部对齐』,那么了解了这个解释方式,其它的属性就很好理解了,所以说,虽然ConstraintLayout不太建议通过代码来布局了,但能理解代码的含义,对理解ConstraintLayout

91210

深入浅出,官方文档看ConstraintLayout

* layout_constraintTop_toBottomOf // 上边底部对齐 * layout_constraintBottom_toTopOf // 下边顶部对齐...* layout_constraintBottom_toBottomOf // 下边底部对齐 * layout_constraintBaseline_toBaselineOf // 文本内容基准线对齐...Fig. 6 - 可见时的表现 这种特殊的行为让我们在无需打乱布局情况下,在标记GONE控件的地方构建布局,这样的做法对于做简单的布局动画很有用。...敲黑板,划重点:一般MATCH_PARENT在ConstraintLayout布局下是不支持的,但是在简单的布局结构(如控件的约束只与ConstraintLayout关联)下,MATCH_PARENT是被支持的...Ratio 至于为何高度填充屏幕而宽度填充,其玄机在于下面这句话,能理解它,就理解了比例使用的精髓: In this case the system sets the largest dimensions

89830

可折叠设备的桌面模式

△ Duo 应用在优化前后的对比 在这篇文章中,您会了解一个简单而又高效的方式来使您的应用在可折叠设备上运行时适配布局。...这是一个简单的媒体播放器案例,它会自动调节尺寸以避免让折叠处出现在画面中间,并且调整播放控制组件的位置,从屏幕完全展开时嵌入画面中,变为当屏幕部分折叠时显示为单独的面板。...第三个视图是一个 ReactiveGuide。它被放置在另外两个视图中间,并且以 Guideline 的形式作为另外两个视图的划分。...这样一来,当您将 ReactiveGuide 从底部移动至折叠位置时,布局的转换就会发生。 您可能想要将播放控件一直限定在 ReactiveGuide 的底部。...由于 ReactiveGuide 是水平的,此属性指的是参考线父布局底部的距离。 让您的应用感知屏幕折叠 现在进入最重要的部分: 如何获知您的手机何时进入了桌面模式,并获取到折叠处的位置呢?

2.3K30

还在用Android正经布局来写页面吗?

Baseline是控件中文字的基准线,这里可以理解为参照某个控件中的文字底部对齐,来看看样式: ? 如果不加基准线对齐的话,那么ButtonA的位置就在容器的左上角。...2、设置margin边距 边距,和传统的布局是一样的用法,但是这里要注意的是,必须要设置自己的相对位置(先要指定自己在容器中的位置,可以是相对容器的,也可以是相对某个控件的),如果设置的话,那么设置...这个很好理解,设置与容器的左边和右边分别对齐,这样的话就能让控件水平居中了,同理垂直居中和中心对齐也是这样。...可能有些人看不太懂,我也没看懂(哈哈,LZ你是来搞笑的吗),但是看官网给出的图我大概明白是什么意思了,简单来说就是可以根据两个控件的中心来形成约束关系,然后可以通过设置角度来控制这个约束关系(还看不懂的话那就来实践一把...使用0dp,相当于`MATCH_CONSTRAINT` 注意:match_parent官方建议在ConstraintLayout布局中使用,可以通过设置MATCH_CONSTRAINT(真实数值是0dp

1.3K30

ConstraintLayout_1:可视化拖拽布局

基本操作 下面我们来学习一些具体的操作吧,ConstraintLayout的基本用法很简单,比如我们想要向布局中添加一个按钮,那么只需要从左侧的Palette区域拖一个Button进去就可以了,如下图所示...Guidelines 现在你已经对ConstraintLayout比较熟悉,并且能使用ConstraintLayout来编写一些简单的界面了。...不过目前有一个问题可能还比较头疼,刚才我们已经实现了让一个按钮居中对齐的功能,如果我们想让两个按钮共同居中对齐该怎么实现呢?...12.gif 可以看到,我们给登录按钮的右边向Guideline添加约束,登录按钮的下面向底部添加约束,并拖动按钮让它距离底部64dp。...想要使用Autoconnect,首先需要在工具栏中将这个功能启用,默认情况下Autoconnect是启用的,如下图所示。

1.3K20

Android新特性介绍,ConstraintLayout完全解析

其实ConstraintLayout属于Android Studio 2.2的新特性,我在去年写《第二行代码》的时候就非常想要将这部分内容加入新书里面,但是在尝试之后还是放弃了。...Guidelines 现在你已经对ConstraintLayout比较熟悉,并且能使用ConstraintLayout来编写一些简单的界面了。...不过目前有一个问题可能还比较头疼,刚才我们已经实现了让一个按钮居中对齐的功能,如果我们想让两个按钮共同居中对齐该怎么实现呢?...可以看到,我们给登录按钮的右边向Guideline添加约束,登录按钮的下面向底部添加约束,并拖动按钮让它距离底部64dp。...想要使用Autoconnect,首先需要在工具栏中将这个功能启用,默认情况下Autoconnect是启用的,如下图所示。 ?

1.8K70

强大的ConstraintLayout:使用ConstraintLayout打造响应式UI

但这种实现方式,隐隐感觉不够优雅: 实现逻辑依靠两部分实现,布局和计算辅助类,相关逻辑不够内聚,有一定的维护成本(其他人接手时,单看布局文件,会觉得这是很简单的一个布局,尝试修改布局内的高度,却会发现无论怎么修改生效...对于这种三个控件竖直排列的场景,用竖直方向的链条Chain来实现; Chain需要设置为spread_inside,使得两端的控件对齐边缘; 对于中部视频预览控件,宽高设置为0dp,即MATCH_CONSTRAINT...一开始,笔者一直致力于将中间的布局的边界,在保留当前效果的情况下,拓展约束边界,最终未果。原因很简单:鱼和熊掌不可兼得,比例限制为1:1的情况下,如何能做到宽高不一致? 需要换个角度来处理这个情况。...先依次看看,设为下面三种情况,布局会是怎样的效果(简单起见只放Pixel 3 XL的效果图): 头部设为gone 底部设为gone 头部和底部均设为gone [头部设为`gone`,6.3'' 1440...对于头部区域/底部区域消失的场景,设计上是希望中部区域直接对齐父布局的顶部/底部,而实际上,这个约束关系并没有指定,导致了预期外的情况3的出现(情况1、情况2只是碰巧没关系罢了)。

2.9K21

自定义View:手撸一个带FAB凹槽的底部导航栏

,也不缺各种花里胡哨按常理出牌的底部导航栏。...设计思路 既然玩那就干脆玩花一点,一步到位给中间按钮加了个简单的点击动画,点击后FAB在垂直方向上执行一次往返位移,同时底部导航栏上的凹槽大小跟随着FAB的凹陷深度动态变化,需要实现的功能点以及思路大体是下面的几个...FAB的参照物方便对齐停靠; FAB位移动画以及导航栏凹陷动态变化:自定义导航栏的形状,根据FAB的凹陷深度来动态绘制导航栏。...drawable/ic_notifications_black_24dp" android:title="@string/title_notifications" /> 这一步底部导航栏跟页面的基本交互也算完成了...只不过这看似挺简单的效果,设计路径和计算相关尺寸大小实践起来还是挺麻烦的,在废弃了n种方案之后决定出采用以下的一种: 如上图所示,橙色实线为底部导航栏的目标形状,canvas的绘制原点默认在左上角,整个形状的直线部分路径比较好确定

9710
领券