一、gravity和layout_gravity相同处

两者都是设置对齐方式的属性。内部的属性值相同。

根据英文意思也能理解其中的意思。如center_horizontal表示在水平方向上的位置为中间。

二、gravity和layout_gravity的不同处

gravity是设置自身内部元素的对齐方式。比如一个TextView,则是设置内部文字的对齐方式。如果是ViewGroup组件如LinearLayout的话,则为设置它内部view组件的对齐方式。

layout_gravity是设置自身相当于父容器的对齐方式。比如,一个TextView设置layout_gravity属性,则表示这TextView相对于父容器的对齐方式。

具体参考如下

1、gravity效果

①TextView

【代码】

 <TextView
android:text="这是一个TextView"
android:layout_width="200dp"
android:layout_height="200dp"
android:gravity="center"
android:background="#ff0"
/>

【提示】这里方便观察,我们给TextView设置了一个backGround背景颜色。设置了固定的宽度

【注意】如果要用gravity属性,此组件的layout_width和layout_height不能设置为wrap_content。此时设置的gravity属性没有效果,因为组件包裹着内容,无论设置什么,也都不能有改变

【效果】

②LinearLayout

【代码】

     <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="#f00"
>
<TextView
android:text="TextView在这里"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#ff0"
/>
</LinearLayout>

【提示】此时外部viewGroup类组件设置gravity为center,内部组件TextView在外部LinearLayout的中间。TextView没有设置gravity属性,则文字在开始位置

【效果】

2、layout_gravity效果

对于layout_gravity不是什么情况下都能设置的属性(如RelativeLayout),而且在不同的viewGroup中产生的效果也会不同(如LinearLayout)。

具体实例如下

①LinearLayout

 <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f00"
android:orientation="horizontal">
<TextView
android:text="TextView在这里"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#ff0"
android:layout_gravity="center"
/>
</LinearLayout>

【效果】

【提示】此时layout_gravity的center值,并没有让TextVieW在LinearLayout的中间,这和LinearLayout的orientation的定位方向有关。

当设置为horizontal时,LinearLayout中的组件时按照横着排列,当设置ayout_gravity属性为center值时,组件就在垂直方向处于中间位置。同理,当设置为vertical时,效果如下

②FrameLayout(帧布局)

【代码】

     <FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f00">
<TextView
android:text="TextView在这里"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#ff0"
android:layout_gravity="center"
/>
</FrameLayout>

【效果】

gravity和layout_gravity的区别的更多相关文章

  1. Android gravity和layout_gravity的区别

    一.gravity和layout_gravity相同处 两者都是设置对齐方式的属性.内部的属性值相同. 根据英文意思也能理解其中的意思.如center_horizontal表示在水平方向上的位置为中间 ...

  2. gravity与layout_gravity的区别

    android:gravivty 控件的内容显示位置 android:layout_gravity 控件在屏幕的布局位置,相对于容器或者父控件的位置

  3. 【整理】Android中的gravity和layout_gravity区别

    [背景] 在Android中,想要设置个按钮的水平对齐,都累死了: [已解决]ADT中已设置TableLayout布局的情况下如何设置按钮居中对齐    所以现在有必要搞清楚,到底gravity和la ...

  4. Android布局学习——android:gravity和android:layout_gravity的区别

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  5. Android开发UI之android:gravity / android:layout_Gravity,android:padding / android:layout_margin属性区分

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

  6. gravity、layout_gravity及orientation

    gravity.layout_gravity及orientation 最近在弄一个简单的界面:横向,添加一张准备好的背景图,在界面右边居中放置一个按钮.实现过程中发现对布局的主要属性没有想象中地那么熟 ...

  7. gravity、layout_gravity、ayout_weight 区别及用法

    layout_gravity  表示组件自身在父组件中的位置. gravity             表示组件的子组件在组件中的位置. weight  意思是权重.比重,即当前控件在画布中所占的空间 ...

  8. Android:android:gravity 和 android:layout_Gravity 的区别

    LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity. android:gravity 属性是对该view中内容的限定 andro ...

  9. 2018.5.7 androidStudio中:layout_gravity 与 gravity的属性的区别

    android:gravity:设置的是控件自身上面的内容位置 android:layout_gravity:设置控件本身相对于父控件的显示位置. 看下面 <LinearLayout xmlns ...

随机推荐

  1. 05_Linux目录文件操作命令2_我的Linux之路

    这一节我们继续来学习Linux中对文件和目录的操作命令 mkdir 创建目录 mkdir (选项)(参数) 在Linux端可以使用mkdir来创建目录,如果你没有加其他的路径名,那么默认是在当前目录下 ...

  2. 角落的开发工具集之Vs(Visual Studio)2017插件推荐

    因为最近录制视频的缘故,很多朋友都在QQ群留言,或者微信公众号私信我,问我一些工具和一些插件啊,怎么使用的啊?那么今天我忙里偷闲整理一下清单,然后在这里面公布出来. Visual Studio 201 ...

  3. Struts(十五):主题

    Theme主题是配置的struts-core.jar下的com.apache.struts2包下的default.properties中(默认配置为:xhtml) ### Standard UI th ...

  4. Linux服务器SSH无法通过DSA证书登录的解决方法

    从openssh7.0开始,ssh-dss密钥被默认禁用. 修改服务器端的openssh设置重新开启 # vim /etc/sshd/sshd_config添加以下选项PubkeyAcceptedKe ...

  5. Python3NumPy——数组(2)之数学空间与NumPy空间

    0 介绍 本文承接上一篇,文章采用新的阐述方式,将数学中的表达与NumPy中的函数关联起来. 采用这种方式,可以直接建立数学表达与计算系统的对应关系,更易理解. 由于博客编写时间有限,每次尝试一个知识 ...

  6. Win10 VS2012 无法注册IIS4.0 解决方案

    死活注册不上,度娘也找了,最终找到只要打个补丁就行. 安装: Microsoft Visual Studio 2012 更新 (KB3002339) 下载:http://www.microsoft.c ...

  7. C# webBrowser 控件赋值

    string body = PostWebRequest(txtURL.Text, textBox2.Text); if (webBrowser1.ReadyState != WebBrowserRe ...

  8. java设计模式之代理设计模式(Proxy)

    一个简单Proxy代理模式范例 interface Subject{ //定义核心主题所要完成的功能 public void make(); } class RealSubject implement ...

  9. ES6 new syntax of Default Function Parameters

    Default Function Parameters.md Default Function Parameters function getSum(a,b){ a = (a !== undefine ...

  10. [LeetCode] Max Consecutive Ones II 最大连续1的个数之二

    Given a binary array, find the maximum number of consecutive 1s in this array if you can flip at mos ...