简单使用一下搜索工具,我们就不难找到下面这样的答案:
layout_gravity
表示组件自身在父组件中的位置
gravity 表示组件的子组件在组件中的位置
1. <?xml version="1.0" encoding="utf-8"?>
2. <!-- android:gravity设置了按钮上面的文字的显示位置,而android:layout_gravity设置了按钮在布局中的显示位置。 –>
3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
4. android:orientation="vertical"
5. android:layout_width="fill_parent"
6. android:layout_height="wrap_content">
7. <Button android:layout_width="250dip"
8. android:gravity="right"
9. android:layout_height="wrap_content"
10. android:text="我居右显示"
11. android:layout_gravity="right" />;
12. </LinearLayout>
复制代码
这段代码的展现效果如下:!
然后我们再看下面这段代码:
1. <?xml version="1.0" encoding="utf-8"?>
2. <!-- android:gravity设置了按钮上面的文字的显示位置,而android:layout_gravity设置了按钮在布局中的显示位置。 –>
3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
4. android:layout_width="fill_parent"
5. android:layout_height="wrap_content">
6. <Button android:layout_width="250dip"
7. android:gravity="right"
8. android:layout_height="wrap_content"
9. android:text="我居右显示"
10. android:layout_gravity="right" />
11. </LinearLayout>
复制代码
这段代码我们一样设置了android:layout_gravity="right",但是它的展现效果却是下面这样的:
细心一点的同学就会发现,下面的这段代码,最外层的LinearLayout少了这样一个属性:android
rientation="vertical"
不错,正是缺少了这个属性才导致了android:layout_gravity="right"的失效。
因为LinearLayout默认的是:android rientation="horizontal"
"
也就是说,只有在作为父layout的LinearLayout是android rientation="vertical" 的时候,android:layout_gravity="right"才会生效。
看完上面的内容,有同学也许还会发现,当外层的LinearLayout为android rientation="vertical" 的时候,android:layout_gravity="bottom"失效了
看到这里相信大家都明白了
下面我们还需要做一个简单的总结:
当作为父layout的LinearLayout的属性为android rientation="vertical"
的时候,android:layout_gravity="?"这里设为横向的时候才能生效。比如:left,right,center_horizontal等
当作为父layout的LinearLayout的属性为android rientation="horizental" 的时候,android:layout_gravity="?"这里设为纵向的时候才能生效。比如:top,bottom,center_vertical等;
有一个比较特殊的是center,不管是横向还是纵向的时候,它总有一个方向起作用