Android之layout_gravity与gravity解析

相信layout_gravity和gravity这两个属性一直困扰着很多人,很多初学者都分不清这两个属性有什么区别,以及怎样区分它们。它们中,有一个表示的是一个控件在父布局中的位置,而另一个表示的是一个控件中的文本或子空间的位置。下面我们来辨析一下这两个属性。

我们先来看这样一段代码:

 1 <LinearLayout
 2     xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent">
 5
 6     <TextView
 7         android:layout_width="200.0dip"
 8         android:layout_height="40.0dip"
 9         android:background="@color/colorAccent"
10         android:gravity="center"
11         android:text="Hello World"
12         android:textColor="@color/black"
13         android:textSize="20.0sp"/>
14
15 </LinearLayout>

gravity属性辨析

运行代码得到的结果如下图所示。从结果图中可以看到,gravity并不能让一个控件在父布局中怎么样,它只能控制这个控件内部的文本或元素。

我们把上面代码中的gravity属性改变为layout_gravity属性:

 1 <LinearLayout
 2     xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent">
 5
 6     <TextView
 7         android:layout_width="200.0dip"
 8         android:layout_height="40.0dip"
 9         android:background="@color/colorAccent"
10         android:layout_gravity="center"
11         android:text="Hello World"
12         android:textColor="@color/black"
13         android:textSize="20.0sp"/>
14
15 </LinearLayout>

layout_gravity属性辨析

得到的结果如下图所示。从结果图中我们可以看出,layout_gravity可以控制控件在父布局中的位置,而不能控制控件中的文本或元素的位置。

总结与感悟:对于Android布局代码中的所有属性,凡是带有“layout_”标记的属性,都是表示控件在父布局中的情况;而如果不带“layout_”标记,则表示对于其自身或对其子元素的影响。

时间: 2024-08-03 21:24:50

Android之layout_gravity与gravity解析的相关文章

Android中layout_gravity和gravity的区别

安卓中的 layout_gravity 属性和 gravity属性 有啥区别? LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置. android:layout_gravity是用来设置该view相对与父view 的位置.比如一个button

android 布局中 layout_gravity、gravity、orientation、layout_weight

线性布局中,有 4 个及其重要的参数,直接决定元素的布局和位置,这四个参数是 android:layout_gravity ( 是本元素相对于父元素的重力方向 ) android:gravity (是本元素所有子元素的重力方向) android:orientation (线性布局以列或行来显示内部子元素) android:layout_weight (线性布局内子元素对未占用空间[水平或垂直]分配权重值,其值越小,权重越大. 前提是子元素 设置了 android:layout_width = "

android 布局中 layout_gravity、gravity、orientation、layout_weight【转】

线性布局中,有 4 个及其重要的参数,直接决定元素的布局和位置,这四个参数是 android:layout_gravity  ( 是本元素相对于父元素的重力方向 ) android:gravity        (是本元素所有子元素的重力方向) android:orientation    (线性布局以列或行来显示内部子元素) android:layout_weight  (线性布局内子元素对未占用空间[水平或垂直]分配权重值,其值越小,权重越大. 前提是子元素 设置了 android:layo

Android Fragment 真正的完全解析(上)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务:以及Fragment的一些特

layout_gravity和gravity的区别

android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的. android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置. 对于 android:layout_gravity中LinearLayout 当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用.即:left,right,center_horizontal

android如何使用DOM来解析XML+如果做一个表情的弹出框

效果图: 如何解析以下的xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <array> <string>(#大笑)</string

Android Fragment 真正的完全解析(上)--转

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务:以及Fragment的一些特

AS中layout_gravity与gravity的区别

gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的. android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置. 比如说button: android:layout_gravity 表示按钮在界面上的位置. a

【转】Android Fragment 真正的完全解析(上)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务:以及Fragment的一些特