我知道咱们能够为android:gravity
和android:layout_gravity
属性设置如下值: android
center
center_vertical
center_horizontal
等 可是我对这二者感到困惑。 编程
android:gravity
和android:layout_gravity
的用法有什么区别? 布局
若是要在视图中设置内容的重力,则将使用“ android:gravity”;若是要在其父视图中设置该视图(总体)的重力,则将使用“ android: layout_gravity”。 spa
我在Sandip的博客上看到的我几乎错过的东西解决了个人问题。 他说layout_gravity
与LinearLayout
不layout_gravity
。 code
若是您使用的是LinearLayout
,而重力设置LinearLayout
您不知所措(例如我),请切换到其余选项。 xml
我实际上切换到了RelativeLayout
而后在包含的2个TextView
上使用layout_alignParentLeft
和layout_alignParentRight
,使它们在一行上向左和向右移动。 图片
内部-外部 ip
gravity
将内容排列在视图内部 。 lay out _gravity
自编视图的位置自己以外 。 有时也有助于查看图片。 绿色和蓝色是TextViews
,其余两种背景颜色是LinearLayouts
。 utf-8
layout_gravity
不适用于RelativeLayout
视图。 将其用于LinearLayout
或FrameLayout
视图。 请参阅个人补充答案以获取更多详细信息。 gravity
将不会有任何影响。 所以, wrap_content
和gravity
没有意义。 layout_gravity
将不起做用。 所以, match_parent
和layout_gravity
在一块儿毫无心义。 layout_gravity=center
在这里看起来与layout_gravity=center_horizontal
相同,由于它们处于垂直线性布局中。 在这种状况下,您不能垂直居中,所以layout_gravity=center
仅水平居中。 gravity
和layout_gravity
。 若要查看在设置父布局自己的gravity
时会发生什么,请查看我上面提到的补充答案 。 (摘要: gravity
在RelativeLayout
上不能很好地工做,但在LinearLayout
可能颇有用。) 所以请记住, layout _gravity在其layout中安排一个视图。 重力将内容安排在视图内部。 get
这是上面图像的xml供您参考:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#e3e2ad" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textSize="24sp" android:text="gravity=" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#bcf5b1" android:gravity="left" android:text="left" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#aacaff" android:gravity="center_horizontal" android:text="center_horizontal" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#bcf5b1" android:gravity="right" android:text="right" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#aacaff" android:gravity="center" android:text="center" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#d6c6cd" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textSize="24sp" android:text="layout_gravity=" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="left" android:background="#bcf5b1" android:text="left" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="center_horizontal" android:background="#aacaff" android:text="center_horizontal" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="right" android:background="#bcf5b1" android:text="right" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="center" android:background="#aacaff" android:text="center" /> </LinearLayout> </LinearLayout>
看一下图像以了解重力
只是想我会在这里添加本身的解释-来自iOS的背景,这就是我如何在iOS术语中内部化这两个:“布局重力”会影响您在超级视图中的位置。 “重力”会影响子视图在您内部的位置。 换句话说,“布局重力”使您本身定位,而重力使孩子定位。