今天,在java SE课堂上,老师讲逻辑或“|”表示:左侧条件成立,也会继续执行右侧条件。例如:

int x=5;
if((x>1)|(x/0==1)){ //即使左侧的x>1成立,x/0也会继续执行,所以会抛异常reture ture;
} 

这让我联想到Android布局中常见的

  android:gravity="bottom|center_horizontal"

并不是“或”的意思,但是和逻辑或相同的是,两边的条件都要执行。在这个语句中 | 不表示或,而是多选。即gravity的属性是可以多选的。gravity是LinearLayout的一个属性。

例如, 我们经常想在一个垂直排列的布局中,使button位于底部并且居中,如下图:

如果你不知道bottom和center_horizontal可以同时设置,你就只能在LinearLayout中设置宽度全屏,android:gravity="bottom",然后在button里设置android:layout_gravity="center_horizontal", 才能实现效果。代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="bottom"android:orientation="vertical" ><Buttonandroid:id="@+id/button1"android:layout_width="200dp"android:layout_height="100dp"android:layout_gravity="center_horizontal"android:textSize="30sp"android:text="确定" />
</LinearLayout>

但是,如果你知道 android:gravity="bottom|center_horizontal",那就简单多了,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="bottom|center_horizontal"android:orientation="vertical" ><Buttonandroid:id="@+id/button1"android:layout_width="200dp"android:layout_height="100dp"android:text="确定"android:textSize="30sp" />
</LinearLayout>

与之相似的layout_gravity也是可以多选的。但是layout_gravity有局限,假如LinearLayout 的orientation设定为垂直,那么Button 的layout_gravity中的属性,就只有水平方向上的left,right,center_horizontal起效,垂直方向上的top,bottom,center_vertical都不起效,这个原因在《第一行代码 第2版》的第96页有介绍,大致意思就是垂直方向上的距离是变化的。我们不可能同时选top|center_vertical,靠上又垂直居中这是矛盾的。所以,layout_gravity中“|”几乎不用,比起gravity,layout_gravity是有局限的。

android:gravity=“bottom|center_horizontal“的妙用相关推荐

  1. android:layout_gravity和android:gravity的区别

    1.首先来看看android:layout_gravity和android:gravity的使用区别. android:gravity: 这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置 ...

  2. android:layout_gravity和android:gravity

    本文转载自:http://blog.csdn.net/dekunchenivan/article/details/6718678# gravity的中文意思就是"重心",就是表示v ...

  3. android:gravity=quot;centerquot;,android:layout_gravity=bottom不起作用问题

    布局layout时, 发现设置了android:layout_gravity="bottom"后view并没有底对齐, 查了下, 原来如下: 对于 LinearLayout 当 a ...

  4. android gravity和layout_gravity区别

    gravity:属性是指定当前控件内容显示的位置. 里面有:left 左 ,right 右, top 上, bottom下 layout_gravity:属性是指定当前控件在父元素的位置 里面有 to ...

  5. android:layout_gravity 和 android:gravity 的区别

    gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gr ...

  6. android:layout_gravity和android:gravity属性的区别

    android:gravity / android:layout_gravity区别: android:gravity 是设置该view里面的内容相对于该view的位置,例如设置button里面的te ...

  7. android gravity参数,Gravity - [ Android中文手册 ] - 在线原生手册 - php中文网

    Gravity 版本:Android 4.0 r1 结构 继承关系 public class Gravity extends Object java.lang.Object android.view. ...

  8. Android属性(android:gravity)的说明

    官方网址:http://developer.android.com/reference/android/R.attr.html#gravity 它(android:gravity)指明了一个对象,在其 ...

  9. android gravity 代码,android:layout_gravity和android:gravity属性的区别

    android:gravity / android:layout_gravity区别: android:gravity 是设置该view类里面的内容相对于该view的位置,例如设置button里面的t ...

最新文章

  1. Access和Access VBA学习总结
  2. PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法
  3. 依据地图上的经纬度坐标计算某个点到多边形各边的距离
  4. sql中count(0),count(1),count(),count(列名)
  5. 在wordpress中使用 markdown:wp-markdown插件的使用方法
  6. 数论基础知识点整理(基础篇)
  7. iOS的iPhone最全尺寸、分辨率、PPI、Reader总结(包括XS、XS Max、XR)
  8. 【C基础练习题】Week9:凯撒密码 | 按空格切分字符串 | 单词折半拆分
  9. 【rviz】出现“For frame [laser]: Fixed Frame [map] does not exist”错误
  10. css实现元素翻转(不是旋转)
  11. nginx正向代理https
  12. MBA-day31 绝对值的几何意义
  13. 黑莓愿意递交用户数据,协助各国警方执法
  14. spine教程入门(不错的教程博客)
  15. Openvas的安装调试
  16. Foursquare
  17. 奇异值分解——matlab中svd函数用法总结
  18. unity3d布料特效的简单使用
  19. 转载:Notepad++的64位HexEditor
  20. 江西师范大学计算机考研资料汇总

热门文章

  1. Python-Django毕业设计驾校预约系统小程序(程序+Lw)
  2. elementui 表格插入图片并且鼠标移入放大
  3. hive 常用sql语句整理
  4. 执剑之刻怎么用电脑玩 执剑之刻模拟器玩法教程
  5. 通过宝塔无法打开数据库
  6. BPR-贝叶斯个性化排序+算法
  7. 107、基于51单片机智能快递柜收取件存储柜快递箱自助存储柜系统设计
  8. linux大于3T硬盘多个分区,linux如何分大于2T的磁盘分区
  9. Keycloak之Gerrit安装与集成之退出-yellowcong
  10. 如何无损截取多个视频画面