美文网首页
RelativeLayout实现子布局居中的两种方式及差异

RelativeLayout实现子布局居中的两种方式及差异

作者: 小智在不在 | 来源:发表于2018-07-17 22:28 被阅读0次

废话不多说,今天记录一下RelativeLayout两种实现子布局居中的方式和差异,先从需求开始,接到UI如下需求:

系统消息页面需求.png

这是系统消息的列表页,注意看第二个Item,左边用来显示时间的View上下间距都是54Px,且左右两个View都是居中的,下面看代码:


第一版实现代码.png

注意红框位置,直接在RelatveLayout中使用了android:gravity="center_vertical"属性使子View居中,看起来应该没问题,我们看一下实际效果:

实现方式1效果图.png

可以看到,因为我们在代码中设置右边的TextSize比左大的原因,同样的条件下右边的View要比左边大,虽然我们期望两个子View都居中,但是实际只满足了右边的View居中的需求,左边的View和右边的View在同一起始位置但没有居中,所以android:gravity="center_vertical"属性并不能使所有子View无差别居中,只能满足最大子View居中的条件。
接下来我们来换一种实现方式:


第二版实现代码.png

这次我们改用在每一个子View中单独设置android:layout_centerVertical="true"属性来请求在父View中居中,这次看一下实现效果:


实现方式2效果图.png
可以看到这一次我们确实实现了每一个子View单独居中的效果,所以可以的出结论:RelativeLayout使用属性android:gravity="center_vertical"期望使子View居中时只会以最大子View为参考,其他子View只是与最大子View同一起始位置,无法确保每一个子View居中,适用于子View相同大小的情况。
而对每一个子View设置属性android:layout_centerVertical="true"可以确保每一个子View单独对RelativeLayout请求居中,并不相互影响,所以适用范围更广。

相关文章

  • RelativeLayout实现子布局居中的两种方式及差异

    废话不多说,今天记录一下RelativeLayout两种实现子布局居中的方式和差异,先从需求开始,接到UI如下需求...

  • CSS布局与水平垂直居中

    左右布局 左中右布局 水平居中 垂直居中 水平垂直居中 左右布局 float实现左右布局 子元素设置float: ...

  • CSS布局(不完全)总结

    CSS布局(不完全)总结 实现水平居中布局的几种方式 方法一: 通过以下CSS代码实现水平居中布局 方法二: 通过...

  • CSS布局小技巧及CSS学习资源

    左右布局 左中右布局 水平居中 垂直居中 左右布局 利用float实现左右布局 给所有子元素加 float: le...

  • 初识CSS布局

    本文将简单学习几种基本的CSS布局方式:左右布局,左中右布局,水平居中,垂直居中。 左右布局 本文只介绍两种最基础...

  • 常见CSS布局

    左右布局 左中右布局 水平居中 垂直居中 - 左右布局 方法1:利用float实现左右布局 给所有子元素加 flo...

  • CSS布局

    如何使用CSS做出: 左右布局/左中右布局水平居中垂直居中 左右布局/左中右布局 在此提供两种实现方法,实际操作中...

  • ConstraintLayout使用小技巧

    在开发中可能需要实现如下效果: 首先尝试在原先LinearLayout、RelativeLayout等布局中的方式...

  • CSS 居中与文字处理

    居中 居中是布局中最常遇到的问题,情景不同实现居中的方法也不同,下面分别介绍不同场景下居中的实现方式。另外最常见的...

  • ToolBar标题居中以及对刘海屏的适配

    一、ToolBar 标题居中 解决方法:在RelativeLayout布局中加入一个toolbar和Textvie...

网友评论

      本文标题:RelativeLayout实现子布局居中的两种方式及差异

      本文链接:https://www.haomeiwen.com/subject/sxxnpftx.html