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

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

-- 约束 到的 目标组件 该组件 垂直方向 居中于整体布局 其左侧紧贴布局左边缘 , 但是有 50dip 的边距 Margin 如果该组件设置不可见...-- 约束 到的 目标组件 该组件 垂直方向 居中于整体布局 其左侧紧贴布局左边缘 , 但是有 50dip 的边距 Margin 如果该组件设置不可见...-- 约束 到的 目标组件 该组件 垂直方向 居中于整体布局 其左侧紧贴布局左边缘 , 但是有 50dip 的边距 Margin 如果该组件设置不可见...-- 约束 到的 目标组件 该组件 垂直方向 居中于整体布局 其左侧紧贴布局左边缘 , 但是有 50dip 的边距 Margin 如果该组件设置不可见...-- 约束 到的 目标组件 该组件 垂直方向 居中于整体布局 其左侧紧贴布局左边缘 , 但是有 50dip 的边距 Margin 如果该组件设置不可见

1.6K30

细细品读!深入浅出,官方文档看ConstraintLayout

新特性 相对于传统布局,ConstraintLayout在以下方面提供了一些新的特性: 相对定位 外边距 居中和倾向 可见性的表现 尺寸约束 Chain 辅助工具 接下来就这些新特性进行详细了解。...相对定位 相对定位是在ConstraintLayout中创建布局的最基本构建块,也就是一个控件相对于另一个控件进行定位,可以从横向、纵向添加约束关系,用到的边分别有: 横向:Left、Right、Start...、End 纵向:Top、Bottom、Baseline(文本底部的基准线) 通常是一条边向另一条边添加约束,就像下面按钮B要定位在按钮A的右边一样: ?...Fig. 2 - 相对定位的约束 上图是相对定位的约束,图中每一条边(top、bottom、baseline、left、start、right、end)都可以与其他控件形成约束,罗列这些边形成的相对定位关系如下...W,或H,以确定受约束的是高还是宽,然后受约束的一方根据不受约束的一方,按照比例计算自己的尺寸。

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

    细细品读!深入浅出,官方文档看ConstraintLayout

    相对定位 相对定位是在ConstraintLayout中创建布局的最基本构建块,也就是一个控件相对于另一个控件进行定位,可以从横向、纵向添加约束关系,用到的边分别有: 横向:Left、Right...这样系统就会知道按钮B的左侧被约束在按钮A的右侧,这里的约束可以理解为边的对齐。 ?...上图是相对定位的约束,图中每一条边(top、bottom、baseline、left、start、right、end)都可以与其他控件形成约束,罗列这些边形成的相对定位关系如下: ?...尺寸约束 ConstraintLayout中的最小尺寸 ConstraintLayout本身可以定义自己的最小尺寸: android:minWidth 设置布局的最小宽度 android:minHeight...,那么需要在比例前添加W,或H,以确定受约束的是高还是宽,然后受约束的一方根据不受约束的一方,按照比例计算自己的尺寸。

    98340

    未来布局之星——ConstraintLayout

    :约束 ConstraintLayout是Android Studio 2.2中具有亮点的新功能之一,相比于RelativeLayout、LinearLayout等传统布局,它打破了开发者使用XML...建立依赖 ConstraintLayout布局是Android Studio 2.2的新增功能,所以在建立依赖前需要将Android Studio更新至2.2版本或以上。...除了居中,约束还可以设置控件两边到边界之间的距离比例,通过在右侧属性面板中,拖动水平和垂直方向的进度条来调整两边距离的比例。 ?...如下图所示,在调整按钮宽度后,将两个按钮的左右两边添加约束,然后将下方按钮的上边与上方按钮的下边添加约束,拖动下方的按钮,可设置两个按钮之间的外边距。 ?...较为复杂的约束 调整控件外边距及尺寸 细心的读者们或许会发现,在调整控件位置比例的时候,当进度条滑动至100时,控件未能完全贴上布局的右边界,这是因为控件存在外边距。 ?

    1.9K20

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

    介绍 ConstraintLayout又称约束布局,是谷歌在2016年开发者大会上推出的,之后在Android Studio上成为了默认布局,该布局能减少布局的层级嵌套,我们都知道,View嵌套的越多...2、设置margin边距 边距,和传统的布局是一样的用法,但是这里要注意的是,必须要设置自己的相对位置(先要指定自己在容器中的位置,可以是相对容器的,也可以是相对某个控件的),如果不设置的话,那么设置...margin是无效的,大家可以试试,在一个ConstraintLayout布局中放一个按钮,除了边距之外什么都不设置,这样是没有效果的,因为你没有在布局中给它设置相对位置。...平常我们写标题栏的时候应该都遇到过右边放两个按钮的情况,而且是可以控制显示隐藏的,当最右边的按钮隐藏之后,左边的按钮也要距离右边有一个边距,这种情况下我们就可以使用上面这些属性来配置布局。...可能有些人看不太懂,我也没看懂(哈哈,LZ你是来搞笑的吗),但是看官网给出的图我大概明白是什么意思了,简单来说就是可以根据两个控件的中心来形成约束关系,然后可以通过设置角度来控制这个约束关系(还看不懂的话那就来实践一把

    1.3K30

    带你领略 ConstraintLayout 1.1 的新功能前言带你领略 ConstraintLayout 1.1 的新功能

    Android 中创建复杂布局的目的。...您可以通过在两边添加约束来生成一个链条。例如在下面这个动画中,每个视图之间都有一个约束。 ?...在约束布局 1.1 版本中,有一个新的类型约束 constraintCircle,它允许您指定沿着一个圆形进行约束。您不必提供水平和垂直边距,而是指定圆的角度和半径。...然后,您可以将 ConstraintSet 应用于 ConstraintLayout,更新所有约束以匹配 ConstraintSet 中的约束。...了解更多 使用约束布局构建响应式 UI | Android Developers 约束布局 | Android Developers 使用约束布局来设计你的 Android 视图 想要了解有关约束布局

    1.7K20

    带你领略 ConstraintLayout 1.1 的新功能

    您可以通过在两边添加约束来生成一个链条。例如在下面这个动画中,每个视图之间都有一个约束。 ?...spread:均匀分配链中的所有视图 spread_inside:将第一个元素和最后一个元素放置在边缘上,并均匀分布其余元素 packed:将元素包裹在链条的中心 屏障 如果您有几个视图会在运行时更改大小...在约束布局 1.1 版本中,有一个新的类型约束 constraintCircle,它允许您指定沿着一个圆形进行约束。您不必提供水平和垂直边距,而是指定圆的角度和半径。...然后,您可以将 ConstraintSet 应用于 ConstraintLayout,更新所有约束以匹配 ConstraintSet 中的约束。...了解更多 使用约束布局构建响应式 UI | Android Developers 约束布局 | Android Developers 使用约束布局来设计你的 Android 视图 想要了解有关约束布局

    1.5K20

    一文看懂ConstraintLayout的用法

    可以通过以下属性设置一个控件相对另一个控件的外边距: android:layout_marginStart android:layout_marginEnd android:layout_marginLeft...RelativeLayout 没有的属性: 0x02 Margins when connected to a GONE widget 当一个相对的控件隐藏时, ConstraintLayout也可以设置一个不同的边距...设置百分比布局 当 ConstraintLayout 子布局的宽或高设置为0dp时,可以对宽或高设置百分比,例如设置一个按钮的宽是屏幕宽度的30%,那么可以这样处理: android.support.constraint.ConstraintLayout...--按钮width属性设置为0dp,然后需要指定layout_constraintWidth_default,以及layout_constraintWidth_percent两个属性--> <Button...0x07 Chains 在横轴或或者数轴上的控件相互约束时,可以组成一个链式约束。 ? 图9中,A控件与B控件相互约束,这就是一个简单的链式约束。 链头 ?

    79930

    笔记74 | 学习掌握ConstraintLayout的基本属性

    圆形定位使用其他布局是很难实现的(除自定义外),该功能在实际的开发中用的并不多,可以用来实现类似钟表的效果。该功能只不过是约束布局的冰山一角,且往下看。...4、goneMargin(隐藏边距) 当约束目标的可见性为 View.GONE时,还可以通过以下属性设置不同的边距值: layout_goneMarginStart layout_goneMarginEnd...5、约束之百分比布局 百分比布局大家肯定不会陌生,由于 Android的碎片化非常严重,那么屏幕适配将是一件非常令人头疼的事情,百分比适配也就应运而生,约束布局同样也可以实现百分比的功能,并且更加强大,...约束布局的实现方式如下: 约束一个特定的边,基于另一个边的尺寸,可以预先附加W,或H以逗号隔开。 然后需求变动,需要将宽度调整为屏幕的一半: ?

    1.3K50

    【约束布局】ConstraintSet 约束集 ( 简介 | 约束属性集合 | 约束集初始化 | 约束集应用到布局中 | 关键帧动画 | TransitionManager 使用 )

    约束属性的集合 , 其表示 约束布局 ( ConstraintLayout ) 中 所有的组件 的 约束条件 , 尺寸 , 边距 , 等 约束属性 ; ② 约束集 ConstraintSet 封装内容...: 约束集中封装了 每个组件 的所有 约束布局 属性 ; ③ 约束集应用效果 : 约束布局 ( ConstraintLayout ) 应用 约束集 ( ConstraintSet ) 时 , 约束布局中的所有组件都会按照约束集中的约束属性进行重新布局绘制...获取约束集 : 从 约束布局 ( ConstraintLayout ) 中 , 可以获取 约束集 ( ConstraintSet ) , 约束集可以从当前现有组件中获取 , 也可以从布局文件中获取 ,...约束集中的约束属性 : R.layout.constraintlayout 布局就是如下代码 , 从下面的布局中获取 约束集 ConstraintSet , 该约束集中封装了 button1 , button2..., 边距 , 位置 , 旋转 , 缩放 , 等所有布局类型通用的这些属性 ; ② 应用 约束集所有属性 : void applyTo(ConstraintLayout constraintLayout

    3.2K10

    iOS开源界面布局库终于破3000star

    然后又因为懂一点点android相关的编程,了解到android中有四大布局体系,而其中用的最多的就是线性布局。于是想既然如此那我为什么不自己写一个类似android的线性布局呢?...因此在xib上如果用MyLineView来进行布局则可能实际上显示的内容 和真实的内容是不一致的。而且线性布局会因为子视图的大小和边距而调整自己的尺寸。...默认是NO.如果设置为YES的话则边缘视图的边距不起作用了,而且子视图的weight也不起作用了。而且不是调整自己的大小了 //也就是当垂直方向则所有子视图按顺序排列在中间。...,然后就不停的去迭代,不停的去增加新的功能,然后再决定把它开源并放到github上。...需要设置的约束少,不需要像AutoLayout那样无论是位置和尺寸都需要明确的通过设置约束来指定。有些时候可能只需要一两个属性就可以把所有子视图的位置和尺寸都设置完成。

    1.9K40

    【约束布局】ConstraintLayout 之 Chains 链式约束 ( Chains 简介 | 代码 及 布局分析 | 链头设置 | 间距设置 | 风格设置 | 权重设置 )

    水平 或 垂直 方向的空间 ; 3.类似于 LinearLayout 的 weight 功能 : Chains 的功能 与 线性布局 的 weight 属性 设置类似 , 但其功能要比线性布局 强大很多...创建多个 组件 : 先 在 界面中 创建 多个组件 , 其方向 呈 水平放置 , 或 垂直放置 , 此处创建 水平方向的 Chains ( 链 ) ; 2.具体创建方法 : 选中 一组 组件 , 然后...> ---- ( 4 ) 生成的 链 代码分析 Chains 约束 下的 控件 代码 分析 : 两侧 组件 约束与 父控件 , 中间的组件 互相约束 ; 1.左侧按钮布局分析 : 其 左侧 约束于 父组件...: ① 水平方向 : 水平方向上 , 链头 是 最左侧的 控件 ; ② 垂直方向 : 垂直方向上 , 链头 是 最顶部的 控件 ; ---- ( 2 ) 链 间距 链 的 间距 : 1.设置边距...: 链 中的控件 , 如果设置了 链 的 某个方向上的边距 , 边距效果会体现出来 , 2.空间计算 : 在 CHAIN_SPREAD 样式下 , 如果设置了 Margin , 该距离会从剩余的空间中扣除

    3.6K20

    ConstraintLayout 想说爱你不容易~

    和尚理解的约束布局是相对布局的升级版,相对位置,更依赖于其他控件位置,关联性更强。...控件的居中与对齐方式,约束布局中并没有类似于 LinearLayout/RelativeLatout 可以直接设置居中的属性,需要关联周围的布局,相互约束,例如: <LinearLayout android...控件相对于布局的比例/权重,这个就像第二条中居中对齐的功能,如图,控件左侧距左边框长度 与 控件右侧距右边框长度 即图中 x/y 的比例即为相对于布局的水平权重: app:layout_constraintHorizontal_bias...="0.3";控件顶部距上边框长度 与 控件底部距下边框长度 即图中 a/b 的比例即为相对于布局的垂直权重:app:layout_constraintVertical_bias="0.273";当为...和尚认为,约束布局更适合直接将控件拖拽进布局然后进行大致设置位置,然后再对具体的控件进行样式位置的具体调整,适合页面布局相对简单的页面,例如登录注册等。

    81241

    再学一次ConstraintLayout 一些新特性

    ="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" 四、边距...image.png 边距和原来是一样的. android:layout_marginStart android:layout_marginEnd android:layout_marginLeft android...image.png Bias(偏向某一边) 上面的水平居中,是使用的与父亲左侧对齐+与父亲右侧对齐. 可以理解为左右的有一种约束力,默认情况下,左右的力度是一样大的,那么view就居中了....:maxWidth 设置布局的最大宽度 android:maxHeight 设置布局的最大高度 八、Widgets dimension constraints 宽高约束 平时我们使用android:layout_width...例如,如果一个尺寸受两个目标约束(例如,宽度为0dp且以父节点为中心),则可以指示应该约束哪一边,通过 在比率前添加字母W(用于约束宽度)或H(用于约束高度),用逗号分隔: android

    1.7K40

    Android P 中的新文本特性

    PrecomputedText 能够使 app 可以事先甚至在后台线程中执行文本布局最耗费时间的部分工作,以缓存布局结果,并返回宝贵的测量数据。...然后 可以在 TextView 中设置 PrecomputedText.create(CharSequence, params) 的结果。这样,只有大约10%的工作留给 TextView 执行。 ?...△ 测量及布局文本花费的时间比例 ? 放大器(Magnifier) 即使有像智能文本选择这样的特性,精准的文本选择还是有些困难。Android P 推出了文本放大器,以提升文本选择方面的用户体验。...实际上,该属性利用及更改了现有的 lineSpacingExtra 及 lineSpacingMultiplier 属性。 ? △ 行高及字体大小 ?...该属性实际上更改的是顶部边距。 lastBaselineToBottomHeight: 设置 TextView 的下边界及 TextView 的末行基线之间的间距。该属性实际上更改的是底部边距。 ?

    1.5K20

    【RecyclerView】 七、RecyclerView.ItemDecoration 条目装饰 ( getItemOffsets 边距设置 )

    , 通过调用 RecyclerView 的 getChildAdapterPosition 方法 , 可以给指定位置的 item 设置不同的边距 ; 这里为 RecyclerView 网格布局设置边距..., 普通的 item 组件上下左右边距都是 5 像素 , 整个网格布局的左侧 , 右侧 边距是 20 像素 , 网格布局每排 4 个元素 ; 为不同位置的 item 设置不同的边距 , 这里就需要对当前设置边距的位置进行查询与甄别...; 表格布局中每行有 4 个元素 , 所有的元素上下左右边距都设置 5 像素偏移量 , 每行中最左侧的元素距离左边界 20 像素 , 每行中最右侧元素距离右边界 20 像素 ; 使用...针对不同的位置设置不同的边距 // 每排最左侧和最右侧的左右边距设置成 20 像素, 其余 4 个边距一律设置成 5 if (currentPosition % 4 ==...针对不同的位置设置不同的边距 // 每排最左侧和最右侧的左右边距设置成 20 像素, 其余 4 个边距一律设置成 5 if (currentPosition % 4 ==

    5.6K00

    三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现全屏Dialog

    Activity舒服,比如顶部对齐,底部对齐、边距、宽度、高度等。...这里挑几个简单的实现方式,然后说下原因,由于Android的窗口管理以及View绘制是挺大的一块,这里不过多深入。先看实现效果: ?...:windowBackground,这个属性如果采用默认值,设置会有黑色边框,其实这里主要是默认背景的问题,默认采用了有padding的InsetDrawable,设置了一些边距,导致上面的状态栏,底部的导航栏...,左右都有一定的边距 android="http://schemas.android.com/apk/res/android" android:insetLeft...:color="@color/background_floating_material_dark" /> DecorView在绘制的时候,会将这里的边距考虑进去

    4.2K40
    领券