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

ConstraintLayout:如何以编程方式将屏幕划分为屏幕高度的两个相等部分

ConstraintLayout是一种用于Android应用开发的布局方式,它可以以编程方式将屏幕划分为屏幕高度的两个相等部分。在ConstraintLayout中,可以使用约束来定义视图之间的相对位置和大小关系,以实现灵活且响应式的布局。

为了将屏幕划分为屏幕高度的两个相等部分,可以按照以下步骤进行操作:

  1. 创建一个ConstraintLayout作为根布局。
  2. 在根布局中添加两个视图,分别表示要划分的两个部分。
  3. 为这两个视图添加约束,使它们相对于父布局的顶部和底部对齐,并且设置宽度和高度为0dp(match_constraint)。
  4. 设置这两个视图的layout_constraintHeight_default属性为percent,值为0.5,表示每个视图的高度占屏幕高度的50%。
  5. 为这两个视图设置layout_constraintVertical_bias属性为0和1,分别表示上方视图的偏移量为0,下方视图的偏移量为1。

以下是使用ConstraintLayout以编程方式将屏幕划分为屏幕高度的两个相等部分的示例代码:

代码语言:txt
复制
ConstraintLayout constraintLayout = findViewById(R.id.constraintLayout);

// 创建上方视图
View view1 = new View(this);
view1.setId(View.generateViewId());
constraintLayout.addView(view1);

// 创建下方视图
View view2 = new View(this);
view2.setId(View.generateViewId());
constraintLayout.addView(view2);

// 设置上方视图的约束
ConstraintSet set = new ConstraintSet();
set.clone(constraintLayout);

set.connect(view1.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP);
set.connect(view1.getId(), ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM);
set.constrainHeight(view1.getId(), ConstraintSet.MATCH_CONSTRAINT);
set.constrainWidth(view1.getId(), ConstraintSet.MATCH_CONSTRAINT);
set.setVerticalBias(view1.getId(), 0f);

// 设置下方视图的约束
set.connect(view2.getId(), ConstraintSet.TOP, view1.getId(), ConstraintSet.BOTTOM);
set.connect(view2.getId(), ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM);
set.constrainHeight(view2.getId(), ConstraintSet.MATCH_CONSTRAINT);
set.constrainWidth(view2.getId(), ConstraintSet.MATCH_CONSTRAINT);
set.setVerticalBias(view2.getId(), 1f);

set.applyTo(constraintLayout);

通过以上代码,我们可以将屏幕划分为两个高度相等的部分,并且可以根据需要调整各个视图的大小和位置。这种布局方式适用于需要在屏幕上垂直划分不同部分的场景,例如应用程序的顶部和底部导航栏或者分割屏幕显示不同内容等。

推荐的腾讯云相关产品:在这个问题中,并不涉及到特定的云计算产品。如果您有关于其他云计算相关的问题或者需要推荐腾讯云的产品,我将非常乐意为您提供帮助和支持。

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

相关·内容

深入浅出,官方文档看ConstraintLayout

A可见性分为两种状态。...这种情况就感觉像是控件两边有两个反向相等大小力在拉动它一样,所以才会产生控件居中效果。...一般情况下,GONG控件是不可见,且不再是布局部分,但是在布局计算上,ConstraintLayout与传统布局有一个很重要区别: 传统布局下,GONE控件尺寸会被认为是0(当做点来处理) 在...敲黑板,重点 一般MATCH_PARENT在ConstraintLayout布局下是不支持,但是在简单布局结构(控件约束只与ConstraintLayout关联)下,MATCH_PARENT...至于为何高度填充屏幕而宽度不填充,其玄机在于下面这句话,能理解它,就理解了比例使用精髓: ?

97840

深入浅出,官方文档看ConstraintLayout

/> 这种情况就感觉像是控件两边有两个反向相等大小力在拉动它一样,所以才会产生控件居中效果。...一般情况下,GONG控件是不可见,且不再是布局部分,但是在布局计算上,ConstraintLayout与传统布局有一个很重要区别: 传统布局下,GONE控件尺寸会被认为是0(当做点来处理) 在...设置布局最小高度 这些最小尺寸当ConstraintLayout被设置为WRAP_CONTENT时有效。...敲黑板,重点:一般MATCH_PARENT在ConstraintLayout布局下是不支持,但是在简单布局结构(控件约束只与ConstraintLayout关联)下,MATCH_PARENT是被支持...Ratio 至于为何高度填充屏幕而宽度不填充,其玄机在于下面这句话,能理解它,就理解了比例使用精髓: In this case the system sets the largest dimensions

96430
  • Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?

    但是这两种方式都不太优雅,尤其是嵌套过深,或者数据比较敏感,不想暴露给中间层函数时,这种情况下,就可以使用 CompositionLocal 来隐式数据传递给所需 composition 树节点...最后两个是用于国际化适配,因为有些语言是从右到左排列阿拉伯语,所以如果要严格按照左右来区分的话,使用带 Absolute 方法,这个跟 marginStart 和 marginLeft 概念差不多...而 guideline2 是在竖直方向上距离屏幕高度三分之一位置,需要把父布局高度设置为屏幕高度才可以实现。...Text 部分内容超出屏幕。。。。...,就是通过设置不同 ConstraintSet 来实现,如果布局元素很多,可以分为两个 ConstraintSet 对象来分别设置。

    3.2K31

    可折叠设备桌面模式

    展开您视频播放体验 可折叠设备向用户们提供了使用他们手机做更多事情可能性,包括*桌面模式**等创新,也就是当手机平放时,铰链处于水平位置,同时折叠屏幕处于部分打开状态。...△ Duo 应用在优化前后对比 在这篇文章中,您会了解到一个简单而又高效方式来使您应用在可折叠设备上运行时适配布局。...这是一个简单媒体播放器案例,它会自动调节尺寸以避免让折叠处出现在画面中间,并且调整播放控制组件位置,从屏幕完全展开时嵌入画面中,变为当屏幕部分折叠时显示为单独面板。...这样一来该控件会在屏幕完全展开时被隐藏,而当屏幕部分折叠时又出现在底部。 请注意第 28 行 layout_constraintGuide_end 属性。它就是当您移动参考线时需要改变值。...如果您要实现横屏功能,那么大多数时候,边界会以一个在屏幕中垂直居中矩形来表示,它和屏幕一样宽,并且高度与铰链相同 (对于可折叠设备而言值为 0,对于双屏幕设备而言会是两个屏幕之间距离)。

    2.4K30

    【约束布局】ConstraintLayout 偏移 ( Bias ) 计算方式详解 ( 缝隙比例 | 计算公式 | 图解 | 测量图 + 公式 )

    , 必须先设置水平方向约束 , 使用 Left , Right 或者 Start , End 组合成属性约束 , : // 被约束组件 左侧 约束到 目标组件 左侧 app:layout_constraintLeft_toLeftOf...2.垂直方向 : 使用 app:layout_constraintVertical_bias 前提 , 必须先设置垂直方向约束 , 使用 Top , Bottom 组合成属性约束 , : /..., 其组件高度与 Bias 属性无关 , Bias 控制是组件顶部和底部缝隙 ; 6.代码示例 : <?...5.对应变量说明 : ① 屏幕宽度 : D_{screenwidth} =5130 ② 屏幕高度 : D_{screenheight} =7890 ③ 组件宽度 : D_{width} =1282...⑧ 组件下方缝隙 : D_{bottom}=4440 6.相关公式 : ① 组件宽度占屏幕 25\% : D_{screenwidth}=4D_{width} ② 组件高度屏幕 25\%

    2.2K20

    【Android 屏幕适配】屏幕适配通用解决方案 ⑥ ( 约束布局 ConstraintLayout 百分比布局方案 | 将设计稿尺寸自动转为约束布局百分比标签属性 | 输出结果设置到组件标签中 )

    文章目录 一、将设计稿尺寸自动转为约束布局百分比标签属性 二、输出结果设置到组件标签中 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同像素密度 声明受限屏幕支持 约束布局 bias 计算公式参考...【约束布局】ConstraintLayout 偏移 ( Bias ) 计算方式详解 ( 缝隙比例 | 计算公式 | 图解 | 测量图 + 公式 ) 方案 ; 约束布局 百分比 屏幕适配案例参考 【约束布局...】ConstraintLayout 屏幕适配案例 ( 使用代码生成约束布局控件属性 ) 博客 ; 一、将设计稿尺寸自动转为约束布局百分比标签属性 ---- 美工给出设计稿尺寸 720 \times..., 一般情况下这两个值就是布局宽高 , 也就是 宽度 720 和 高度 1280 ; 但是 , 假如有特殊需求 , 比如组件框定在某个组件范围内 , 则设置不同值 ; // 计算 垂直 水平方向...// bias 值 // ② bias 高度计算 : 计算出总 bias 总高度 = height_inner - 控件高度 , 顶部值 / 总高度 = // 垂直方向 bias 值

    1.6K10

    折叠屏上应用设计规范,了解一下?

    △ 布局三个主要区域 指南中 组合部分 带您了解如何充分利用屏幕空间以保障可读性,并且以尊重用户心智模型方式在不同场景下合理排布重要内容和操作选项。...△ 栏式网格 您可以通过这些栏屏幕分为不同区域,用于容纳相关信息和操作,进而改善信息层次结构。...△ 使用栏式网格屏幕分为三个主要区域 在本例中,三个主要区域通过重排来保持相同信息层次结构,但以更加人性化方式在小屏幕上显示。...平板电脑,部分屏幕区域难以用大拇指触及,用户也很难腾出整只手来自由操控屏幕。用户轻易就能触及屏幕底部角落,但可能无法触及屏幕最顶端,尤其是在竖屏模式下。...铰链会带来明显触觉差异,甚至两个屏幕会存在物理分离。因此,请您避免按钮和其他重要操作项直接放在铰链区域。

    4.5K20

    如何让一套代码完美适配各种屏幕

    ConstraintLayoutConstraintLayout强大之处不仅在于它能够进行百分比布局,还可以进行相对定位、角度定位、尺寸约束、宽高比、Chainl链布局等,在不同设备间都能处理游刃有余...,指的是产品流程在不同设备上有不同展示方式,例如手机与Pad区别,在手机设备上,一般来说具体Item列表是一个页面,点击每个Item会跳转至新详情页;而在宽度>高度Pad上,为了防止页面空白浪费...2.1.4、限定符适配在2.1.3中提到了限定符概念,也解决了一部分设计适配问题,但是还有一些限定符概念没有涉及到,该目录下将会提到不同限定符概念,可以结合2.1.3一起食用。...分辨率限定符在Android项目中,会把放置图片资源文件夹分为drawable-hdpi、xhdpi xxhdpi xxxhdpi等,这些指就是分辨率限定符。...举个例子,设计稿中固定宽度为360dp,当前设备屏幕宽度为720,那么density = 720 / 360 = 2,其中当前设备屏幕宽度也可以用DisplayMetrics来获取:val targetDensity

    1.2K20

    FAQ | 为大屏幕设备构建应用常见问题解答

    ,整理成这一篇关于为折叠屏和大屏幕设备构建应用常见问题和解答,如果您在构建过程中有任何其他问题,欢迎通过留言方式让我们知道。...如今随着可折叠屏幕使用量增加,围绕折叠设备进行开发方式更加多样,应用延伸至手机之外机会也就随之增加了。...在竖屏中大堆组件或元素占据设备边缘很合理,但在横屏中,用户大多数时间是双手持握设备,横跨两个边缘元素就会占用大量空间且非常显眼,这会给用户一种感觉——界面很笨拙,所以应尽量避免边缘停靠,考虑用其它方式放置组件和元素...答: 从不同屏幕尺寸角度来说,平板设备需要考虑是横屏模式下中等高度 (Medium height) 和展开宽度 (Expanded width),断点分别是 480dp+ 和 840dp+,桌面设备需要考虑展开高度...布局和输入都很重要,尤其是当您开始考虑更大屏幕设备时,如需创建适合不同屏幕尺寸 自适应布局,最好方法是 ConstraintLayout 用作界面中基本布局。

    3.5K10

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

    使用RelativeLayout进行求解,解题思路: 通过设置一个水平居中参照View,用于等分两个区域。 两个TextView作为一个整体,在布局内垂直居中。...在屏幕高度过长(小于9:16)情况下,对于多出来高度部分,优先分配给底部面板,直到底部面板到达最大值,再将剩余高度分配给中间预览区域; 1.3....在屏幕高度过短(大于9:16)情况下,优先压缩操作区域,直到底部面板到达最小值,再将压缩中间预览区域。 这里需要补充一些设计师未提及部分: 2.1....但这种实现方式,隐隐感觉不够优雅: 实现逻辑依靠两部分实现,布局和计算辅助类,相关逻辑不够内聚,有一定维护成本(其他人接手时,单看布局文件,会觉得这是很简单一个布局,尝试修改布局内高度,却会发现无论怎么修改不生效...不过,这个实现里,中部视频预览区并非实际想要预览区,实际想要部分,是包含了两侧留白部分。 一开始,笔者一直致力于中间布局边界,在保留当前效果情况下,拓展到约束边界,最终未果。

    3K21

    ConstraintLayout 之 Guideline、Barrier、Chains和Groups

    : implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta1' Guidelines 可以简化视图布局对齐方式...Guidelines可以指定一个开始dp值和结束dp值或者可以相对于屏幕百分比。要查看不同准则模式,您可以单击guidelines顶部圆形图标。 效果图如下: ?...Barrier是一个看不见视图,其中包含您用来形成“Barrier”观点。如果其中一个视图增长,则Barrier将其大小调整为所引用项目的最大高度或宽度。...Chains 链允许您控制元素之间空间以及元素如何使用空间。要创建链,需要选择要组成链部分元素,然后右键单击“链”-“创建水平/垂直链”。 ?...这样一来,您可以设置组中控件可见性仅通过设置组可见性就行了,而无需设置每个视图可见性。这对于诸如错误屏幕或加载屏幕事情是有用,其中一些元素需要一次更改其可见性。 添加组-如下: ?

    1.4K50

    【Android 屏幕适配】屏幕适配通用解决方案 ⑦ ( PercentRelativeLayout 百分比布局方案 | 该布局已废弃本方案仅做参考 )

    文章目录 一、PercentRelativeLayout 百分比布局方案 二、输出结果设置到组件标签中 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同像素密度 声明受限屏幕支持 约束布局 bias...计算公式参考 【约束布局】ConstraintLayout 偏移 ( Bias ) 计算方式详解 ( 缝隙比例 | 计算公式 | 图解 | 测量图 + 公式 ) 方案 ; 约束布局 百分比 屏幕适配案例参考...【约束布局】ConstraintLayout 屏幕适配案例 ( 使用代码生成约束布局控件属性 ) 博客 ; 约束布局百分比布局完整方案参考 【Android 屏幕适配】屏幕适配通用解决方案 ⑥ ( 约束布局...---- 使用如下程序 , 输入 PercentRelativeLayout 布局 宽度 , 高度 // 给出中心点坐标,图片宽高,屏幕宽高,计算出该图片位置 // 屏幕宽高 float...width = 1334, height = 614; 左上角顶点坐标 float[][] left_top_data 子组件宽度和高度 float[][] width_height_data 直接可以输出

    29320

    安卓属性动画小技巧

    view 从未执行属性动画或者人为设置偏移量(调用 setTranslationX()),偏移量就是 0,而 mLeft 是据其父 view 左边界距离。...view 执行过属性动画过后或者被设置了偏移量(调用 setTranslationX(),此时 view 位置已经改变到新位置), 偏移量就是 getTranslationX(),其实就是距离最初...如图布局,需求是点击屏幕时,button 需要下滑到屏幕外 通常我们想到 button 向下移动 button 顶部距离屏幕底部距离。但是这个距离就得知道 button 父 view 高度。...() 是相对于自身父View,这里指就是 buttonParent ),而下滑高度就是 buttonParent 高度。...方法 ObjectAnimator.ofFloat(mButton, View.TRANSLATION_Y, 0,buttonParent.getHeight()); 这里代码好像和上面一样,但是思考时方式可不一样

    59840

    端开发技术——解密Flutter响应式布局

    Android方法 为了处理不同屏幕尺寸和像素密度,在Android中使用了以下概念: 1.1 ConstraintLayout Android UI设计中引入一个革命性东西是ConstraintLayout...但这并不能解决大型设备问题,在大型设备中,拉伸或只是调整UI组件大小并不是利用屏幕面积最优雅方式。在屏幕面积很小智能手表,调整组件以适应屏幕大小可能会导致奇怪UI。...3.1 Flutter响应式概念 正如我前面所说,我讨论开发响应式布局所需重要概念,然后你来选择使用什么样方式在你APP上实现响应式布局。...app主要由两个部分组成: HomePage (PeopleView, BookmarkView, ContactView) ChatPage (PeopleView, ChatView) 对于大屏幕...您还可以定义扩展小部件flex属性,这将允许您指定每个小部件应该覆盖屏幕多少部分(默认flex设置为1)。

    2.3K00

    例说 Constraint Layout:初探

    更加扁平化布局,更快速度 约束布局旨在使你布局更加扁平化,你可以布局优化至以前难以想象精简程度:对于无需滚动控件(:RecyclerView,ListView,GridView,etc.)界面...屏幕适配和多分辨率设计更简单 Android 屏幕适配一直是一个耗时耗力工作,CL 不少属性,:bias,可以使我们更简单、更好地布局 UI ,并在不同尺寸、不同分辨率屏幕上都达到一致地、符合设计意图效果...它可以展示两个类似于手机屏幕界面,分别是两种视图预览模式,设计视图和蓝图视图。两者可以辅助着进行布局编辑和预览,非常直观和好用。...可以蓝图模式想象成“X 光”模式,就像我们 X 光片高亮显示了人体密度最高部分——骨骼——一样,蓝图模式是 XML 中最重要内容——属性——视觉表现形式,省略了无关细节,突出体现了布局特征...当然无论是上述那种方式,开发者还是需要对自动推断结果进行适当调整才能获得满意效果,尤其要考虑对不同屏幕尺寸及方向适配。

    2.1K10

    ConstraintLayout概要

    简介 约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上Android系统使用它,它出现主要是为了解决布局嵌套过多问题,以灵活方式定位和调整小部件。...还有一点就是ConstraintLayout可以按照比例约束控件位置和尺寸,能够更好地适配屏幕大小不同机型。...尺寸约束 控件尺寸可以通过四种不同方式指定: 使用指定尺寸 使用wrap_content,让控件自己计算大小 当控件高度或宽度为wrap_content时,可以使用下列属性来控制最大、最小高度或宽度...: android:minWidth 最小宽度 android:minHeight 最小高度 android:maxWidth 最大宽度 android:maxHeight 最大高度 注意...,新建一个TextView约束在屏幕右上角,在Placeholder中设置 app:content=”@+id/textview”,这时TextView会跑到屏幕左上角。

    90432

    黑科技:使用AI和机器学习Android项目秒变IOS项目

    最近看Github,发现了一个刚出炉黑科技:利用人工智能(AI)和机器学习(ML)技术现有Android源代码转换成iOS代码。...目前支持Android项目中资产目录文件和UI布局转换,以及部分外部库转换。有了这个神器,以后一个人就可以轻松搞定两个平台了,真是爽歪歪啊。。。。我根本不需要学习iOS了。。。...已支持功能: Android资产目录 (:jpg,png,.9图等) => "Assets.xcassets" mipmap目录图片资源 => “.appiconset” Color形式...部分效果图如下: CardView屏幕截图: ? image 开关,ImageButton,ToggleButton屏幕截图: ? image Button屏幕截图: ?...image ConstraintLayout屏幕截图(这个也做了移植,确实经惊艳到我了): ? image ? image TableLayout屏幕截图: ? image ?

    1.5K00

    实践 | Google IO 应用是如何适配大尺寸屏幕 UI

    因此,让应用能充分利用额外屏幕空间显得尤其重要。本文展示我们为了让 Google I/O 应用在大尺寸屏幕上更好地显示而用到一些技巧。...单窗格还是双窗格 在日程功能中,我们用列表-详情模式来展示信息层次。在宽屏幕设备上,显示区域被划分为左侧会议列表和右侧所选会议详细信息。...这种布局方式带来一个特别的挑战是,同一台设备在不同配置下可能有不同最佳显示方式,比如平板电脑竖屏对比横屏显示就有差异。...双窗格会一直存在,但根据屏幕尺寸,第二窗格可能不会显示在可视范围当中。只有在给定窗格宽度下仍然有足够空间时,SlidingPaneLayout 才会同时两者显示出来。...由于这些列表项本身不太可能有新布局方式,我们可以通过 ConstraintLayout 限制列表宽度来解决。

    2.1K20

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

    这意味着你可以根据需要自由调整视图位置,并确保在不同屏幕尺寸或设备方向下正确布局。 性能优化:ConstraintLayout针对性能进行了优化,可以减少布局层次以及视图嵌套。...而ConstraintLayout允许多个视图放置在单个容器内,减少了嵌套和层次深度,提高了布局效率和可读性。...你可以通过拖拽和调整视图边界、连接线和约束条件来轻松创建和修改布局。 ConstraintLayout工作原理是通过设置视图之间宽度、高度和相对位置约束条件来实现。...layout_height:设置视图高度。可以使用match_parent(填充父容器)或具体数值。...你可以根据需要修改和扩展这个简单案例,以满足实际界面需求。 五 总结 ConstraintLayout工作原理是通过设置视图之间宽度、高度和相对位置约束条件来实现。

    38920

    iOS界面布局核心以及TangramKit介绍

    因此布局动作就分为两个方面:一个是指定视图尺寸,一个是指定视图位置。...视图尺寸和位置 视图尺寸 视图尺寸就是指视图矩形块大小,为了表征视图大小我们称在屏幕水平方向尺寸大小为宽度,而称在屏幕垂直方向尺寸大小为高度,因此一个视图尺寸我们就可以用宽度和高度两个维度值来描述了...UIView中用bounds属性size部分来描述视图尺寸(bounds属性origin部分后面会介绍到)。 对于屏幕尺寸来说同样也用宽度和高度来描述。...比如说有A和B两个视图,我们定义A视图宽度和B视图宽度相等,而A视图高度则是B视图高度一半。...average:他表示视图尺寸和其兄弟视图一起来均分父视图尺寸,这样所有兄弟视图尺寸都将相等

    2.2K30
    领券