Study Jams_ Android:gravity  和 Android:layout_gravity

Google Study Jams 活动官方网站http://www.studyjamscn.com/portal.php
这里写图片描述
因为之前有JAVA基础,看L2的课程还是比较容易理解,写一些新手比较容易混淆的问题

Android:gravity

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”时图形会变成这样


这里写图片描述

Android:layout_Gravity

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>


这里写图片描述

当这样使用就是可以的了,要注意这个特殊情况

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Maybe_ch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值