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

在ConstraintLayout中垂直居中2个视图

,可以使用以下方法:

  1. 使用约束条件:在ConstraintLayout中,每个视图都可以设置与其他视图之间的约束关系。要实现垂直居中,可以将两个视图的上下边缘都与父布局的上下边缘相连接,并将垂直约束条件设置为居中对齐。

示例代码:

代码语言:txt
复制
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#FF0000"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintVertical_bias="0.5"/>

    <View
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00FF00"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintVertical_bias="0.5"/>

</androidx.constraintlayout.widget.ConstraintLayout>

在上面的示例代码中,view1和view2分别是两个要垂直居中的视图。通过设置它们的约束条件app:layout_constraintTop_toTopOf="parent"app:layout_constraintBottom_toBottomOf="parent",并将垂直约束条件app:layout_constraintVertical_bias="0.5"设置为0.5,即可实现垂直居中。

  1. 使用Guideline:ConstraintLayout还提供了Guideline的功能,可以帮助布局中的视图定位。可以添加一个垂直的Guideline,并将其设置为布局的中心线,然后将两个视图的中心与Guideline对齐,从而实现垂直居中的效果。

示例代码:

代码语言:txt
复制
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/verticalGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.5"/>

    <View
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#FF0000"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="@id/verticalGuideline"/>

    <View
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00FF00"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="@id/verticalGuideline"/>

</androidx.constraintlayout.widget.ConstraintLayout>

在上面的示例代码中,添加了一个垂直的Guideline,并将其设置为布局的中心线,即app:layout_constraintGuide_percent="0.5"。然后将view1的起始边缘与Guideline对齐,即app:layout_constraintStart_toStartOf="@id/verticalGuideline"。将view2的结束边缘与Guideline对齐,即app:layout_constraintEnd_toEndOf="@id/verticalGuideline"。这样两个视图就会在垂直方向上居中显示。

注意:上述示例代码中,使用的是Android的ConstraintLayout布局,如果使用其他前端开发框架或后端开发语言,可以根据相应的文档和语法进行类似的操作。具体的实现方式可能会有所不同,但基本原理是相似的。

以上是在ConstraintLayout中垂直居中2个视图的方法。ConstraintLayout是Android平台上强大而灵活的布局管理器,可以帮助开发人员实现复杂的界面布局。通过使用约束条件或Guideline,可以轻松地实现视图的居中对齐。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

divdiv垂直居中水平居中(css如何让div水平居中)

最近写网页经常需要将div屏幕居中显示,遂记录下几个常用的方法,都比较简单。...水平居中直接加上标签即可,或者设置margin:auto;当然也可以用下面的方法 下面说两种屏幕正中(水平居中+垂直居中)的方法 放上示范的html代码: <div...0; left: 0; right: 0; bottom: 0; } 效果如图: 方法二: 仍然是绝对布局,让left和top都是50%,这在水平方向上让div的最左与屏幕的最左相距50%,垂直方向上一样...,所以再用transform向左(上)平移它自己宽度(高度)的50%,也就达到居中效果了,效果图和上方相同。...,可以使用最简单的标签,不过已经过时了,用法如下: 123 这个标签就是相对于标签里的文字,可以使其居中

15K20
  • SwiftUI 实现视图居中的若干种方法

    欢迎大家 Discord 频道[2] 中进行更多地交流将某个视图视图居中显示是一个常见的需求,即使对于 SwiftUI 的初学者来说这也并非难事。...需求实现下图中展示的样式:彩色矩形视图居中显示单行 Textimage-20220829142518962填充物Spacer最常见也是最容易想到的解决方案。...请阅读 SwiftUI 專欄 #4 Color 不只是顏色[3] ,掌握有关 Color 更多的内容对齐指南上节,我们通过填充物让 Text 实现了左右居中。...上下居中则是利用了 HStack 对齐指南的默认设定( .center )实现的。本节,我们将完全通过对齐指南来实现居中操作。...我为本文这种通过多种方法来解决一个问题的方式添加了【小题大作】标签,目前使用该便签的文章还有: Core Data 查询和使用 count 的若干方法[6]、 SwiftUI 视图中打开 URL

    6.8K40

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

    因此,视图垂直平面(左侧和右侧)只能约束另一个垂直平面上;而基准线则只能约束到其他基准线上。 每个约束句柄只能用于一个约束条件,但您可以同一定位点上创建多个约束条件(从不同的视图)。...layout_constraintTop_toTopOf="parent" /> <TextView style="@style/ConSampleText" android:text="右边<em>垂直</em><em>居中</em>...> 引导线约束 Guideline <em>在</em> <em>ConstraintLayout</em> <em>中</em>添加引导线,可以方便定位。...> 调整约束偏差 对某个<em>视图</em>的两侧添加约束条件(并且同一维度的<em>视图</em>尺寸为“fixed”或者“wrap Content”)时,则该<em>视图</em><em>在</em>两个约束条件之间<em>居中</em>且默认偏差为 50%。...Match Constraints <em>视图</em>会尽可能扩展,以满足每侧的约束条件(<em>在</em>考虑<em>视图</em>的外边距之后)。

    2.5K10

    未来布局之星——ConstraintLayout

    切换视图 点击菜单栏的的Show Design、Show Blueprint和Show Design + Blueprint按钮可以对操作视图进行切换,如下图所示: ?...Button控件约束 如将按钮下边圆圈拖至ConstraintLayout底部,则按钮移动至底部;再将按钮上边圆圈拖动至ConstraintLayout顶部,垂直方向上有两个约束的按钮控件就会实现垂直居中...添加约束 约束位置比例调整 当然如果ConstraintLayout添加约束仅仅能实现水平、垂直居中,那么它在功能上与RelativeLayout就没有差别了。...除了居中,约束还可以设置控件两边到边界之间的距离比例,通过右侧属性面板,拖动水平和垂直方向的进度条来调整两边距离的比例。 ?...如下图,创建一个垂直方向的参考线,将其切换至百分比模式,拖动到50%的位置,再将两个控件左右两侧分别与Guidelines添加约束,然后两个控件的底边相互添加约束即可实现合并居中的效果。

    1.9K20

    css布局 - 垂直居中布局的一百种实现方式(更新...)

    上左50%方位值,先让左上角处于视图中心点  3. margin负边距,再让身子中心点挪到视图中心点 六、目标元素宽高也不固定时,元素依然水平垂直居中(经典弹层布局无宽高)  1. absolute定位飘起来...上左50%方位值,先让左上角处于视图中心点  3. translate -50%偏移,实现自动化偏移相应数值到中心点 七、图片和多行文本的 两列垂直居中(经典布局难题) 1. 两端对齐交给爹地 2....影视二字就可以垂直居中了。 可行性分析:就像图片中看到的那样,只有两个字,他们排在一行不会换行。所以实际应用要确保一定是单行文本不会换行。...但是这种布局方式毕竟拘束,实现垂直居中后,还需要一大堆的代码把tabel的样子抹掉。 所以知道有这种方法,平时根本不用也没必要用,我也不去实践了。...Flex弹性盒布局属性,此系列还有两个属性justify-content 和 align-items 分别用于实现水平居中垂直居中

    3.5K10

    【 前端相关 网页布局 】探讨CSS3垂直居中” 问题

    “44 年前我们就把人类送上月球了,但现在我们仍然无法 CSS 实现垂直居中。”...—— James Anderson 难题 CSS 对元素进行水平居中是非常简单的:如果它是一个行内元素,就对它的父元素应用 text-align: center;如果它是一个块级元素,就对它自身应用...然而如果要对一个元素进行垂直居中,可能光是想想就令人头皮发麻了。 多年以来,垂直居中已经成为了 CSS 领域的圣杯,它同样也是前端开发圈内广为流传的笑话。原因在于它同时具备以下几条特征。...在实践,它往往难如登天,当涉及尺寸不固定的元素时尤其如此。...解决 下面用思维导图的方式为大家介绍“垂直居中”问题常见的解决方案: image.png 下载 思维导图下载地址: 本地下载 —— [ 文章最后编辑于:2017/03/04 ]

    91180

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

    开发者可以使用约束条件(如layout_constraintLeft_toLeftOf、layout_constraintTop_toTopOf等)来定义视图与其他视图或边界的关系,从而精确控制视图布局的位置和大小...二 ConstraintLayout使用方法 添加依赖:首先,项目的build.gradle文件,确保已经添加了ConstraintLayout库的依赖。...:' 布局文件定义:布局文件(通常是XML文件),以ConstraintLayout作为根容器来定义布局。...app:layout_constraintVertical_bias:设置视图垂直方向上的偏移比例,范围为0-1。...setVerticalBias(float bias):设置视图垂直方向上的偏移比例。 setWidth(int width):设置视图的宽度。

    38920

    详解Android ConstraintLayout 约束布局的用法

    2017年Google发布了 Android Studio 2.3 正式版, Android Studio 2.3 版本中新建的Module默认的布局就是 ConstraintLayout 。..." </android.support.constraint.ConstraintLayout 使用 ConstraintLayout 的布局方案,需要在 build.gradle 引入支持库:...那么我们有个疑问,为什么Button 是居中显示的?因为在上面的布局中有两个重要的属性没有写出来,但是却有默认的属性值,那就是水平、垂直的偏移比例。...layout_constraintHorizontal_bias //控件的水平偏移比例 layout_constraintVertical_bias //控件的垂直偏移比例 如果在布局文件没有明确的写出偏移比例...可以看到很明显,Button 水平方向向右偏移比例为 30% , 垂直方向向下偏移比例为 70% 。 基线约束控键 该控键帮助你对齐任意两个widget的文字部分,与widget的大小无关。

    3.9K20

    未知大小的父元素设置居中

    当提到web设计居中元素时。关于被居中的元素和它父元素的信息,你知道的越多就越容易设置。那么假如当你不知道任何信息?居中也是可设置的。...1) 居中元素外 包裹table-cell,设置table-cell只是让table-cell的元素table-cell居中。...2)table添加tr,td前要先添加tbody。 ---- 困难的:不知道子元素的宽高 当你不知道待居中子元素的尺寸时,设置子元素居中就变得困难了。 ?...我要告诉你的是这个ghost元素技巧是更好的方式并且应该是你想要的居中技巧近些年来。但是实际上,它和table技巧是一样的。该技巧几乎在所有浏览器中都支持,包括IE 8+。...最好的做法是父元素设置font-size:0 并在子元素设置一个合理的font-size。

    4K20

    ConstraintLayout_1:可视化拖拽布局

    首先需要说明,ConstraintLayout是有match parent的,只不过用的比较少,因为ConstraintLayout的一大特点就是为了解决布局嵌套,既然没有了布局嵌套,那么match...其实这个需求很常见,比如说应用的登录界面,都会有一个登录按钮和一个注册按钮,不管它们是水平居中也好还是垂直居中也好,但肯定都是两个按钮共同居中的。...image.png 然后我们希望让这两个按钮水平方向上居中显示,垂直方向上都距离底部64dp,那么就需要先添加一个垂直方向上的Guideline,如下图所示。...首先点击通知栏的Guidelines图标可以添加一个垂直或水平方向上的Guideline,这里我们需要的是垂直方向上的。...这样就实现了让两个按钮水平方向上居中显示,垂直方向上都距离底部64dp的功能了。 自动添加约束 不过如果界面的内容变得复杂起来,给每个控件一个个地添加约束也是一件很繁琐的事情。

    1.4K20

    ConstraintLayout概要

    开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多。 ConstraintLayout减少层级从而提升渲染的时间。...的中心(垂直方向顺时针)的120度,距离为150dp 两个组件居中对齐就可以设置90度角度来实现 goneMargin goneMargin主要用于约束的控件可见性被设置为gone的时候使用的margin...时,margin才生效 居中 RelativeLayout,把控件放在布局中间的方法是把layout_centerInParent设为true,而在ConstraintLayout的写法是:...假如假如赋值为0.5,则水平居中,假如假如赋值为0.3,则更倾向于左侧 垂直偏移同理。...将对控件进行 2 次测量,ConstraintLayout1.1可以通过设置 layout_optimizationLevel 进行优化,可设置的值有: none:无优化 standard:仅优化直接约束和屏障约束

    90432

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

    其实ConstraintLayout是Android Studio 2.2主要的新增功能之一,也是Google去年的I/O大会上重点宣传的一个功能。...其实这个需求很常见,比如说应用的登录界面,都会有一个登录按钮和一个注册按钮,不管它们是水平居中也好还是垂直居中也好,但肯定都是两个按钮共同居中的。...然后我们希望让这两个按钮水平方向上居中显示,垂直方向上都距离底部64dp,那么就需要先添加一个垂直方向上的Guideline,如下图所示。 ? 我来对上图中的操作进行一下解释。...首先点击通知栏的Guidelines图标可以添加一个垂直或水平方向上的Guideline,这里我们需要的是垂直方向上的。...这样就实现了让两个按钮水平方向上居中显示,垂直方向上都距离底部64dp的功能了。 自动添加约束 不过如果界面的内容变得复杂起来,给每个控件一个个地添加约束也是一件很繁琐的事情。

    1.9K70

    【约束布局】ConstraintLayout 组件可见性 View.GONE 处理 与 Margin 属性 ( 约束布局可见性处理 | goneMargin 属性 )

    -- 被 约束 的组件 该组件 垂直方向 居中于整体布局 其左侧 紧贴 目标组件 , 右侧约束于 父容器 --> <Button...-- 约束 到的 目标组件 该组件 垂直方向 居中于整体布局 其左侧紧贴布局左边缘 , 但是有 50dip 的边距 Margin 如果该组件设置不可见...> 2.布局截图 : 3.布局说明 : ① 目标组件 : 该组件的 android:visibility 属性稍后会被设置 View.GONE; 1> 垂直方向 : 居中于布局 ; 2> 水平方向...-- 被 约束 的组件 该组件 垂直方向 居中于整体布局 其左侧 紧贴 目标组件 , 右侧约束于 父容器 --> 6.组件设置 GONE 属性布局截图 : 7.组件设置 GONE 属性后的说明 : ① 可见性与宽高 : 目标组件仍然布局存在 , 只是变成了一个点 , 宽高变成 0 , 不可见 ; ②

    1.5K30

    ConstraintLayout 使用简介一 背景二 demo三 进一步升级打怪四 更多

    image.png 其中文字‘金豆’ 左边金色条是居中对齐文字一栏的。按传统布局,这个简单的布局至少需要三层布局, 垂直方向和 单个水平方向。下面看下使用ConstraintLayout布局。 <?...首先我们看下 要保证垂直方向的顺序布局。 如果没使用ConstraintLayout前,需要使用垂直方向的LinearLayout 或RelativeLayout。...这里上下方向拉力一致,所以文本居中了。...bind:layout_constraintRight_toLeftOf去不掉,是需要保证icon的左边,那怎么办呢?...相似的还有垂直方向layout_constraintVertical_bias 恩,ui需求又来了,比较常见的如, 水平三个按钮,我想等分水平的,这里不再赘述,ConstraintLayout类似LinearLayout

    2.5K40

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

    加载的过程解析起来就越费时间,该布局几乎能做到LinearLayout和RelativeLayout嵌套完成的任何布局,下面跟着一波小demo来深入了解谷歌推荐的ConstraintLayout。...margin是无效的,大家可以试试,一个ConstraintLayout布局中放一个按钮,除了边距之外什么都不设置,这样是没有效果的,因为你没有布局给它设置相对位置。...这个很好理解,设置与容器的左边和右边分别对齐,这样的话就能让控件水平居中了,同理垂直居中和中心对齐也是这样。...6、尺寸约束 ConstraintLayout布局,你可以设置布局的最大和最小尺寸,而且你可通过三种方式来设置控件的大小: 特定数值,比如123dp 使用wrap_content,控件将自己计算大小...然后,子项的水平或垂直偏差属性将影响该链元素的定位 9、辅助布局Guildline 这是ConstraintLayout布局特有的功能,你可以用它来辅助你完成布局,类似于高中数学图形学的辅助线,只不过这条辅助线只有两个方向

    1.3K30
    领券