What is the difference between gravity and layout_gravity in Android?
我知道我们可以为
但我对这两件事都感到困惑。
You should help their names。P></
android:gravity the contents of the sets的重力(即其子视图)是View of the used。- 重力
android:layout_gravity sets of the the parent or to itsView Layout 相关。
和an example is here。P></
在你外出 </P >
-
gravity arranges里面内容的视图。 -
layout_gravity arranges的视图的位置的外院本身。
有时它helps看到一个电影,太。在绿色和蓝色是
</P > Notes
- 在
layout_gravity 并不工作方法的观点,在一个RelativeLayout 。。。。。。。使用它的方法的观点,在一个LinearLayout 或FrameLayout 。。。。。。。看我的答案补充方法的更多细节。 - 在视图的宽度(或高度),已经是大于它的内容。
gravity ,否则不会有任何的影响。因此,wrap_content 和gravity meaningless是在一起的。 - 在视图的宽度(或高度),已经是小于的父母。
layout_gravity ,否则不会有任何的影响。因此,match_parent 和layout_gravity meaningless是在一起的。 - 在
layout_gravity=center 看起来同样为layout_gravity=center_horizontal 这里,因为他们是在一个垂直的线性布局。你不能在这vertically中心的情况下,SOlayout_gravity=center 只读的中心水平。 - 这个答案与
gravity 只读产品处理的设置和layout_gravity 的观点,在一个布局。看到什么发生当你设定的gravity 杂志《父母本身的布局,结帐的补充回答我上面提到的。(小结:gravity 不好的工作是一个有用的RelativeLayout ,但可以用LinearLayout 。)
所以记住,布局_重力arranges A View在其版图。重力arranges里面内容的视图。 </P > XML
这里是在XML中以上的图像设计你的参考: </P >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | <?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> |
相关
- 差分之间的一个视图的PADDING ON和边缘
- 火柴_亲子与包的内容_
- 如何设定的重力和重力都布置一个linearlayout由程序
the difference
1 2 3 4 | Android | CSS ————————————————————————+———————————— android:layout_gravity | float android:gravity | text-align |
容易帮助你记得我
带
答案:使用短
龙的故事:在重力的控制在这样的线性布局容器
1)to the child of视图的控制重力的容器(
2)to the view of a child重力控制在其容器,使用
1 2 3 4 5 6 7 8 9 | import android.widget.LinearLayout.LayoutParams; import android.view.Gravity; ... Button button = (Button) findViewById(R.id.MyButtonId); // need to cast to LinearLayout.LayoutParams to access the gravity field LayoutParams params = (LayoutParams)button.getLayoutParams(); params.gravity = Gravity.BOTTOM; button.setLayoutParams(params); |
to change the Child of视图的水平位置在水平线性在容器边缘,一个可以使用
similarly for vertical view,the Group of its重力容器,垂直对准一个view is child below another顶和cannot be changed。默认的重力中心(the horizontal
其实,孩子也有这样的观点
从什么我可以采集的重力引力布局_ of that is the inside its view is the parent,重力和重力inside that View of the children。P></
我认为这是正确的,但最好的方式找到了is to play周围。P></
You can find the examples)http:///layoutexamples.zip juanpickselov.comP></
created the Eclipse中的文件和子文件夹,有.svn removed included the strings,颜色,风格,布局文件等。茶叶是主要点of the演示。自从我在Java和Android开发newbie酮可能find the Java的,低效的。can be copied the files into an Eclipse项目前我也used them with the android开发NetBeans IDE插件available for that。P></
如果我们想在重力of content set the inside",那么我们将在视图:使用Android重力",如果我们想集重力of this view(as a parent within its Whole)然后我们将使用"视图布局:_ Android重力"。P></
是的,我的思想D添加我自己解释这里来了从一个背景是,如果这是怎么了,我已经internalized两在iOS的术语:"布局affects重力"你的位置在父视图"。重力"affects在子视图的位置,你的在你的。另一个说的通,版图的重力位重力在你自己的位置,你的孩子。 </P >
Use Of Gravity and Layout-gravity in
FrameLayout .....
注:
重力在视图内容中使用,因为有些用户有答案,所有
我们可以使用
我们可以使用框架布局中的每个重力值(例如:
have look on example ......
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="100dp" android:textSize="25dp" android:background="#000" android:textColor="#264bd1" android:gravity="center" android:layout_gravity="center" android:text="Center Layout Gravity"/> <TextView android:layout_width="wrap_content" android:layout_height="80dp" android:textSize="25dp" android:background="#000" android:textColor="#1b64b9" android:gravity="bottom" android:layout_gravity="bottom|center" android:text="Bottom Layout Gravity" /> <TextView android:layout_width="wrap_content" android:layout_height="80dp" android:textSize="25dp" android:background="#000" android:textColor="#d75d1c" android:gravity="top" android:layout_gravity="top|center" android:text="Top Layout Gravity"/> <TextView android:layout_width="wrap_content" android:layout_height="80dp" android:textSize="25dp" android:background="#000" android:layout_marginTop="100dp" android:textColor="#d71f1c" android:gravity="top|right" android:layout_gravity="top|right" android:text="Top Right Layout Gravity"/> <TextView android:layout_width="wrap_content" android:layout_height="80dp" android:textSize="25dp" android:background="#000" android:layout_marginBottom="100dp" android:textColor="#d71cb2" android:layout_gravity="bottom" android:gravity="bottom" android:text="Top Left Layout Gravity"/> </FrameLayout> |
输出:
Use Of Gravity and Layout-gravity in LinearLayout .....
LinearLayout with orientation vertical ....
注:这里我们只能设置3个
have look on example :-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="100dp" android:textSize="25dp" android:background="#000" android:textColor="#264bd1" android:gravity="center" android:layout_gravity="center_horizontal" android:text="Center Layout Gravity or Center_Horizontal"/> <TextView android:layout_width="wrap_content" android:layout_height="80dp" android:textSize="25dp" android:background="#000" android:layout_marginTop="20dp" android:textColor="#d75d1c" android:layout_gravity="right" android:text="Right Layout Gravity"/> <TextView android:layout_width="wrap_content" android:layout_height="80dp" android:textSize="25dp" android:background="#000" android:layout_marginBottom="100dp" android:textColor="#d71cb2" android:layout_gravity="left" android:layout_marginTop="20dp" android:gravity="bottom" android:text="Left Layout Gravity"/> </LinearLayout> |
输出:
LinearLayout with orientation horizontal ....
注:这里我们还可以设置3个
have look on example :-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="match_parent"> <TextView android:layout_width="120dp" android:layout_height="100dp" android:textSize="25dp" android:background="#000" android:textColor="#264bd1" android:gravity="center" android:layout_gravity="bottom" android:text="Bottom Layout Gravity"/> <TextView android:layout_width="120dp" android:layout_height="100dp" android:textSize="25dp" android:background="#000" android:layout_marginTop="20dp" android:textColor="#d75d1c" android:layout_gravity="center" android:text="Center Layout Gravity"/> <TextView android:layout_width="150dp" android:layout_height="100dp" android:textSize="25dp" android:background="#000" android:layout_marginBottom="100dp" android:textColor="#d71cb2" android:layout_gravity="left" android:layout_marginTop="20dp" android:text="Left Layout Gravity"/> </LinearLayout> |
输出:
注:我们不能在
记住这一点的一个简单技巧是,重力适用于地球内部的我们。因此,
记住布局中的"外引力",这有助于您记住,
我看到的东西在我的博客sandip'几乎错过,固定我的问题。He does not work with
如果你使用的是
我真的
在基本的双差分之间的这是…… </P >
Android的:是用于重力子元素的视图。 </P >
Android的:布局_重力是用于这一元与相对于父视图。 </P >
重力:允许您移动容器中的内容。(如何放置子视图)。
重要事项:(在可用空间内沿X轴或Y轴移动)。
例如:假设您要使用linearlayout(height:match_parent,width:match_parent)作为根级别元素,那么您将有完整的框架空间可用;子视图表示linearlayout中的2个文本视图(height:wrap_content,width:wrap_content)可以使用重力的相应值沿x/y轴移动。在父母身上。
布局重力:允许您仅沿X轴覆盖父重力行为。
重要提示:(在可用空间内沿X轴移动[覆盖])。
示例:如果您记住前面的示例,我们知道重力使我们能够沿着X/Y轴移动,即将文本视图放置在线性布局中。假设linearlayout指定了重力:中心;这意味着每个文本视图都需要垂直和水平居中。现在,如果我们希望一个textview向左/向右,我们可以使用textview上的布局重力覆盖指定的重力行为。
额外好处:如果你深入挖掘,你会发现text view中的文本充当子视图;所以如果你在textview上应用重力,textview中的文本会四处移动。(整个概念也适用于此)
用更多的细节,你可以访问 </P >
http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html
重力用于在视图中设置文本对齐,但布局重力用于自行设置视图。让我们举个例子,如果你想对齐用edittext编写的文本,然后使用重力,你想对齐这个edittext或任何按钮或任何视图,然后使用布局重力,所以非常简单。
重力:用于简单视图,如文本视图、编辑文本等。
布局重力:仅用于当前视图的相对父视图上下文中的重力,如线性布局或框架布局,以使视图位于父视图的中心或任何其他重力。
重力——适用于它自己的观点。
布局重力---适用于与其父级相关的视图。
1 | android:gravity |
用于调整视图相对于其指定位置(已分配区域)的内容。如果
1 | android:layout_gravity |
用于相对于父文件或布局文件查看自身。