因为之前有JAVA基础,看L2的课程还是比较容易理解,写一些新手比较容易混淆的问题
gravity是控制View里的元素在View的位置,大家看一段代码的呈现就会明白
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Google"
android:textSize="40sp"
android:background="#090"
/>
</RelativeLayout>
当我给代码添加Android:gravity=”center”时图形会变成这样
layout_gravity控制的是View在ViewGroup中的位置
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="200dp"
android:layout_height="200dp"
android:text="Google"
android:textSize="40sp"
android:background="#090"
/>
</LinearLayout>
![这里写图片描述](https://img-blog.csdn.net/20170301230829052?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWF5YmVfY2g=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 当我添加android:layout_gravity=”center”之后
![这里写图片描述](https://img-blog.csdn.net/20170301230926991?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWF5YmVfY2g=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 这样就可以基本理解gravity和layout_gravity的用途了 但是其中有一个特殊情况值得注意:
当我们采用LinearLayout布局时,有以下特殊情况需要我们注意: (1)当 android:orientation=”vertical” 时, android:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。 (2)当 android:orientation=”horizontal” 时, android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。 大家可以观察下下面的代码和对应的视图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="200dp"
android:layout_height="200dp"
android:text="Google"
android:textSize="40sp"
android:background="#090"
android:layout_gravity="center_vertical"//区别在这里
/>
</LinearLayout>
![这里写图片描述](https://img-blog.csdn.net/20170303170924324?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTWF5YmVfY2g=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) **显然可以看出这样使用android:layout_gravity=”center_vertical”是无效的,下面我改成android:layout_gravity=”center_horizontal”**
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="200dp"
android:layout_height="200dp"
android:text="Google"
android:textSize="40sp"
android:background="#090"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
当这样使用就是可以的了,要注意这个特殊情况