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

水平链中的两个视图,当一个视图为View.GONE时,另一个视图应在父视图中居中

在Android开发中,水平链是一种布局方式,用于将多个视图按照水平方向连接在一起。当其中一个视图设置为View.GONE时,意味着该视图不可见,并且不占用布局空间。此时,另一个视图应该在父视图中居中显示。

为了实现这个效果,可以使用ConstraintLayout布局来创建水平链,并使用约束条件来控制视图的位置和对齐方式。以下是一种实现的方法:

  1. 在布局文件中,使用ConstraintLayout作为根布局,并添加两个视图,分别为view1和view2。
代码语言: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"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@id/view2"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_chainStyle="packed"
        android:background="@android:color/holo_blue_light"/>

    <View
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@id/view1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:background="@android:color/holo_green_light"/>

</androidx.constraintlayout.widget.ConstraintLayout>
  1. 在代码中,根据需要设置view1和view2的可见性。
代码语言:txt
复制
View view1 = findViewById(R.id.view1);
View view2 = findViewById(R.id.view2);

// 当view1不可见时,将view2设置为居中对齐
if (view1.getVisibility() == View.GONE) {
    ConstraintSet constraintSet = new ConstraintSet();
    constraintSet.clone((ConstraintLayout) view1.getParent());
    constraintSet.centerHorizontally(R.id.view2, ConstraintSet.PARENT_ID);
    constraintSet.applyTo((ConstraintLayout) view1.getParent());
}

通过以上步骤,当view1的可见性设置为View.GONE时,view2会自动居中显示在父视图中。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iot
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

unity3d新手入门必备教程

当你已经选择了一个工具你可以在场景视图中单击任何一个物体选中它,现在按下 F键使得该物体居中显示。    ...从场景添加或删除一个物体,它将在层次显示或消失。如果你不能在场景视图中同时看到所有物体,你可以使用层次来选择并检视它们。    ...物体层次 Unity使用一个称为化(Parenting)概念。任何物体都可以成为另一个物体或子。一个子物体可以从它物体继承移动和旋转。...一物体是另外一些物体(Parent)物体,这个物体旋转将影响所有的子(Child)物体。你可以在层次视图 (Hierarchy View)通过拖动任何物体到另一个物体上来创建一个。...这将在两个物体之间创建父子关系。这种功能非常类似于文件夹树功能,一个游戏物体包含在另一个游戏物体

6.3K10

CSS banner图响应式居中显示

图片 在 PC 网站首页,banner 图作为网页中最大一张图片,在传达网页主要信息同时,也吸引着浏览者所有注意力,所以 banner 图展示方式直接影响着用户体验,今天我们就来聊聊 banner...图如何在不同尺寸口中居中显示 我们都知道,通过background-size: cover;属性能够将图片居中显示,但在窗口拉伸过程,图片往往很随着拉伸而变得惨不忍睹,所以我们可以将图片独立出来...,并通过隐藏图片两侧方式,来达到 banner 图在不同尺寸下居中显示目的 HTML 结构如下 !...margin: 0 auto; } .banner img { width: 1920px; margin: 0 -355px; vertical-align: middle; } 口宽度与图片宽度同为...1920 px ,Nian 糕正好处于视图居中位置,页面效果如下图所示 口宽度为 1210 px ,Nian 糕依旧在视图中居中显示,如下图所示 本篇内容到这里就全部结束了,源码我已经发到了

2.3K30
  • 一文彻底搞懂js位置计算

    ,包括由于溢出导致视图中不可见内容。...Element.scrollWidth 这也是一个元素内容宽度只读属性,包含由于溢出导致视图中不可以见内容。 原理上和scrollHeight是同理,只不过这里是宽度而非高度。...注意是触发元素也就是 e.target,额外小心如果事件对象存在从一个子元素移动到子元素内部,e.offsetX/Y 此时相对于子元素左上角偏移量。...我们来看看这张图: 计算元素距离 body 偏移量 当我们需要获得元素距离 body 距离,但是又无法确定元素是否存在定位元素(大多数时候在组件开发,并不清楚节点是否存在定位)。...计算边界矩形,会考虑口区域(或其他可滚动元素)内滚动操作,也就是说,滚动位置发生了改变,top 和 left 属性值就会随之立即发生变化(因此,它们值是相对于,而不是绝对) 。

    3.8K10

    【CSS3】CSS3 3D 转换 ⑤ ( 3D 呈现效果 - transform-style 属性 | transform-style 属性语法 | 设置 透视视图 效果 | 结构伪类选择器 )

    一、3D 呈现效果 - transform-style 属性 1、transform-style 属性语法 盒子 如果有 子盒子 , 假如 盒子 有 3D 变换 效果 , 那么子盒子 3D...效果 则需要使用 特殊属性 transform-style 进行设置 ; 在 CSS3 样式 , 使用 transform-style 属性 定义 在 3D 空间 呈现 被 3D 转换 元素元素...; 此时即使对 子元素应用了 3D 转换属性 则不会生效 , 而是从属于元素 3D 变换属性 ; preserve-3d : 设置为 preserve-3d 属性值 , 子元素将保留其 3D 位置...宽度 和 高度 200 像素 */ width: 200px; height: 200px; /* 距离顶部 100 像素, 水平方向居中...宽度 和 高度 200 像素 */ width: 200px; height: 200px; /* 距离顶部 100 像素, 水平方向居中

    51910

    提高效率 |ArcGIS Pro 中所有快捷键一网打尽

    Ctrl+L 布局为活动视图,锁定或解锁在内容窗格中选择项目。 Ctrl+Shift+L 布局为活动视图,请在内容窗格锁定或解锁该级别上所有项目。...在 2D 视图将沿所指示方向平移。指针距离视图中心越远,平移速度越快。在 3D 视图沿指针所指示远离视图中方向平移时,将保留照相机方位角和高度角。...在 2D 视图将沿所指示方向平移。指针距离视图中心越远,平移速度越快。 在 3D 视图沿指针所指示远离视图中方向平移时,将保留照相机方位角和高度角。Shift+Q降低漫游速度。...照相机移动,调整鼠标指向以设置您要行驶方向。可以选择使用 W 和 S 键更改方向。 左箭头键和右箭头键 从视图中心向左或向右移动照相机。...在播放,将地图显示在传感器视频帧和地面轨迹上保持居中视频到达显示器边缘,地图显示将平移。这与自动追踪视频播放器工具相同。 Ctrl+Alt+N 在活动视频窗格视频上显示指北针。

    1.1K20

    iOSMyLayout布局系列-流式布局MyFlowLayout

    这些视图布局方式都有一些统一特征,都要求必须将子视图放入到一个特殊视图中去,我们称这些特殊视图为布局视图(Layout View)。...在这些扩展属性:用于定位视图位置类是MyLayoutPos类,这个类可以用来决定视图上、下、左、右、水平居中、垂直居中六个方位具体值;而用于决定视图尺寸类是MyLayoutSize类,这个类可以用来决定视图高度和宽度具体值...在一个垂直布局情况下,如果子视图是第一行一列则myLeft,myTop值是这个子视图布局视图边距值;而视图是第二行一列则myLeft是指定布局视图左边距值,而myTop则是离第一行整体子视图顶部边距值...;而视图是第一行二列是则myLeft是指定离前一个视图左边距值,而myTop则是离布局视图顶部边距值;而视图是二行二列则myLeft和myTop则分别是前一个视图左边距值和第一行整体子视图顶部边距值...在一行之内视图总是会存在有一个高度最高视图,因此我们也希望这行内其他子视图能以这个子视图为基础来进行垂直方向对齐停靠设置(水平布局则是水平方向对齐停靠设置)。

    2.5K30

    SceneKit 场景编辑器-为您AR体验构建3D舞台

    它们之间弧度是一次用一个轴旋转对象。 口控件 口下方是口控件。在这个栏上,我们可以改变到不同视角。我经常将它设置为前面,因为这是在屏幕上添加模型起始角度。...场景图视图 打开场景,通常会隐藏场景图视图。要显示它,请单击口下方左下方小窗口图标,在控件旁边。在这里,您可以看到组成场景所有部分。这些对象是几何,灯光,相机等节点。...位置 位置是您放置模型位置。它由3D坐标组成:x,y和z。所有坐标的初始位置设置为0,它是应用程序加载设备相机起始位置。...现在,转到对象库并添加全向灯,它将从该光源每个方向照亮场景。在场景左上角添加一个,在右下角添加另一个。您可以通过拖动操纵器或直接在位置框随意移动这些灯光。将“ 镜面反射”设置为白色。...因此,在“ 场景”图中,选择所有其他形状,将它们拖到框顶部。您可以单击箭头以展开并查看隐藏节点。 缩放 请记住,我们测量是米大小。现在我们应该将整个手表缩小到1%。选择框节点。

    5.5K20

    解决CSS垂直居中几种方法(基于绝对定位,基于口单位,Flexbox方法)

    在CSS对元素进行水平居中是非常简单:如果它是一个行内元素,就对它元素应用 text-align: center ;如果它是一个块级元素,就对它自身应用 margin: auto。...3)在实践,它往往难如登天,涉及尺寸不固定元素尤其如此。       接下来我们具体说明一下这三个方法简单使用。...3)  口宽度小于高度,1vmin 等于 1vw,否则等于 1vh。        4)  口宽度大于高度,1vmax 等于 1vw,否则等于 1vh。...我们只需写两行声明即可:先给这个待居中元素元素设置 display: flex(在这个例子是元素),再给这个元素自身设置我们再熟悉不过margin: auto。...虽然没有垂直居中效果,但也是完全可以接受。   Flexbo 另一个好处在于,它还可以将匿名容器(即没有被标签包裹文本节点)垂直居中

    1.8K70

    【CSS3】CSS3 3D 转换示例 - 盒子模型翻转示例 ( 开启透视视图 | 设置过渡动画 | 设置 3D 呈现样式 | 鼠标移动到控件上方效果 | 设置两个子盒子模型背靠背效果 )

    效果 是 相对于它们自己 3D 空间 , 而不是相对于元素平面 ; 鼠标移动到控件上方效果 :hover 是一个 伪类选择器 , 该选择器 表示 用户与页面进行交互一种状态 , 即 鼠标指针停留在...(180deg); } 默认状态下 , .box 类型盒子 显示是 .box 类型 样式 , 如果将 鼠标移动到 盒子模型上方 , 会显示 .box:hover 样式 ; 设置两个子盒子模型背靠背效果...容器设置 相对定位 , 根据 子绝相 原则 , 子盒子使用了绝对定位 , 盒子就要使用相对定位 ; 第一个子容器 显示在正面 , 正常设置即可 ; 第二个子容器 显示在背面 , 此时需要 绕...宽度 和 高度 200 像素 */ width: 200px; height: 200px; /* 距离顶部 100 像素, 水平方向居中...-- 盒子 两个子盒子 分别是正面 和 背面 翻转盒子 不是 两个子盒子 --> <div

    32000

    布局常用解决方案对比(媒体查询、百分比、rem和vwvh)

    比如浏览器宽度或者高度发生变化时,通过百分比单位,通过百分比单位可以使得浏览器组件宽和高随着浏览器变化而变化,从而实现响应式效果。...(4)margin 跟padding一样,margin也是如此,子元素margin如果设置成百分比,不论是垂直方向还是水平方向,都相对于直接元素width。这里就不具体举例。...比如我们要实现一个固定长宽比长方形,比如要实现一个长宽比为4:3长方形,我们可以根据padding属性来实现,因为padding不管是垂直方向还是水平方向,百分比单位都相对于元素宽度,因此我们可以设置...比如width和height相对于元素width和height,而margin、padding不管垂直还是水平方向都相对比元素宽度、border-radius则是相对于元素自身等等,造成我们使用百分比单位容易使布局问题变得复杂...css3引入了一个单位vw/vh,与视图窗口有关,vw表示相对于视图窗口宽度,vh表示相对于视图窗口高度,除了vw和vh外,还有vmin和vmax两个相关单位。

    2K40

    移动端H5开发之页面适配篇

    750,当然也可以是别的大小,假定我们就根据750pxUI图来写css,当用户设备理想视图 window.screen.width 大于750,我们就把页面整体缩放,如果小于750,就把页面整体放大...下图为实现效果图片这种方式虽然能够解决适配问题,但也会过于简单粗暴,主要有以下两个问题 1. 全局缩放,把不需要缩放也影响了; 2....简单说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于元素字体大小单位。...它们之间其实很相似,只不过一个计算规则是依赖根元素一个是依赖元素计算。下图所示,如果根元素html字体大小为100px的话,1rem也就等于100px。...下图为实现效果图片上面的代码会有一个最大变化阀值,为designWidth也就是720px,浏览器窗口大小超过这个值,就不再动态变化了,这个可以保证在pc上也能正常显示。

    7.4K92

    一文详解ORB-SLAM3地图管理

    1.基本概念 ·共视图 Covisibility Graph: 共视图一个加权无向图,图中每个节点是相机位姿,如果两个位姿关键帧拍摄到相同关键点数量达到一定值(论文设定为至少15个),则认为两个关键帧具有共关系...一个关键帧被加入到共视图当中后,这个关键帧与共视图中具有最多观测点关键帧之间建立一个边,完成Spanning Tree增长。...Essential Graph节点依旧是全部关键帧对应位姿,连接边包含三种边:Spanning Tree边、共视图中关系强(共视点数量超过100)边、以及回环形成边。...具体来说,先从所有关键帧中选择与当前帧有相同特征点关键帧集合,之后提取一个关键帧集合,之后利用两个集合关键帧信息进行相机位姿跟踪 ·回环检测 回环检测共包含四个部分:选择候选帧、计算变换...1) 选择候选帧 每次获得一个关键帧,都会判断是否与之前关键帧发生了回环。

    1.5K10

    RenderingNG关键数据结构及其角色

    尽管,现在也和最上面的示例一样,也存在两个渲染进程,但是此时存在三个 「局部frame树片段」,两个存在于与foo.com所对应渲染进程,另外一个位于与bar.com所对应渲染进程。...口大小改变 这个过程「不是即时」,所以复制视觉属性也包括一个同步令牌sync token。...从而形成两个「Line Box」 这种情况内联格式化上下文被表示为一棵树,它看起来像下面这样。...例如,滚动一个网站,现有瓦片位置会向上移动,只是需要为更远页面内容栅格化一个新瓦片。 上面的图片有四张「瓦片」。滚动发生,「第五块」瓦片开始出现。...另一个例子是存在「站点隔离」多个iframe之间。这种嵌入是表面Surface通过完成一个合成器提交一个合成器帧,它伴随着一个用于区分合成帧标识符,即「表面ID」。

    2K10

    透视投影原理和实现

    限定P大小后,视点E可视区间(或叫视景体)退化为一棱椎体,如图3所示。该棱椎体仍然是一个无限区域,其中视点E为棱椎体顶点,平面P为棱椎体横截面。...实际应用,往往取位于两个横截面中间棱台为可视区域(如图4所示),完全位于棱台之外物体将被剔除,位于棱台边界物体将被裁减。该棱台也被称为椎体,它是计算机图形学中经常用到一个投影模型。 ?...将视点E想象为一个虚拟照相机,平面想象为胶片,那么图5 也是一个标准照相机模型。...设一般模型点X,其对应在标准模型点为Y,那么视点位于E,姿态为R,X和Y有如下关系: X = E+RY 反过来有: Y = R-1 (X-E) 通常取R为正交阵,即R-1 =RT ,故有 Y...5 转换为屏幕坐标 对于透视投影标准模型,平面的坐标模型如图 7 所示,它坐标原点位于平面的中心, x 轴正向水平向右, y 轴正向垂直向上。

    5K81

    vw, vh视窗宽高单位使用

    图为在IE9浏览器下默认打开效果: 显然,这里区”不可能是浏览器外部宽度,计算值不匹配。 ?...OK,看上面demo标题可以发现,本demo最重要知识点其实并不在于vw, vh这两个单位介绍;而是展示了如果使用纯CSS实现弹框水平与垂直居中效果(IE6也是可以支持,不过写法需要变变~以后有机会详细介绍...%可以实现之~~ vw, vh这两个区相关动态单位似乎应用前景一下子黯淡了很多,潜力似乎也就那样——想来想去,得出一个结论:vw, vh区大小相关单位只适用于非定位元素高度相关属性上! ...八、场景之:水平时间轴 水平方向上流体布局,正在琢磨折腾,有不少技术难点,稍等几天…… ?...下图为demo雏形截图,其中,左上角第一个已经成型垂直布局显然要调整成水平方向型,具体如何操作,请等我再好好想想,您也可以一同思考!

    2.5K10

    图形编辑器开发:缩放至适应画布

    这里涉及了场景坐标和视图坐标的转换,引入了 zoom 和口概念。...最重要是 计算缩放比,是基于 bbox 宽还是高,去和口宽或高相除。 这个属于是 填充策略 contain 策略。...newZoom = vh / bbox.height; } else { // 基于宽 newZoom = vw / bbox.width; } 然后就是 小矩形在大矩形下垂直水平居中...加了 50px 边距,这样内容就不再紧贴口边缘了,选中图形图像控制点不至于跑到口外。 思路是,计算 newZoom vw 和 vh,在原来基础减去 padding,再去计算。...需要注意是,后面计算居中,还是要要用原来 viewport.x 和 viewport.y。 计算缩放比,对象是减去 padding 口宽高;计算位置,对象是原来口宽高。

    27430
    领券