Android中的layout_gravity和gravity的区别[通俗易懂]

Android中的layout_gravity和gravity的区别[通俗易懂]在Android的布局中,除了padding和margin容易弄混之外,还有layout_gravity和gravity。按照字面意思来说,layout_gravity就是相对于layout来设置的。

大家好,又见面了,我是你们的朋友全栈君。

在Android的布局中,除了padding和margin容易弄混之外,还有layout_gravity和gravity。按照字面意思来说,layout_gravity就是相对于layout来设置的。通俗点讲就是当前控件之外的位置。

而gravity就是控件内部的位置。具体来看一下Demo。

<?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” >
    
    <TextView
        android:background=”@android:color/holo_blue_light”
        android:textColor=”@android:color/black”
        android:layout_width=”500dp”
        android:layout_height=”100dp”
        android:text=”@string/test”/>

</LinearLayout>

 这个是原始的layout。没有设置layout_gravity和gravity

Android中的layout_gravity和gravity的区别[通俗易懂]

<?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:layout_gravity=”center”
    android:orientation=”vertical” >
    
    <TextView
        android:background=”@android:color/holo_blue_light”
        android:textColor=”@android:color/black”
        android:layout_width=”500dp”
        android:layout_height=”100dp”
        android:text=”@string/test”/>

</LinearLayout>

此时,我们将LinearLayout设置一个layout_gravity。发现没有什么作用,生成的效果还是跟上图一样。然后我们回到前面讲的,是相对于该控件之外的布局。

但是我们的LinearLayout的width和height已经是match_parent了,已经占满整个屏幕了,所以再居中的话,是没有任何效果的。好,我们现在将width和height改成wrap_content看下效果。

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
    android:layout_width=”wrap_content”
    android:layout_height=”wrap_content”
    android:layout_gravity=”center”
    android:orientation=”vertical” >
    
    <TextView
        android:background=”@android:color/holo_blue_light”
        android:textColor=”@android:color/black”
        android:layout_width=”500dp”
        android:layout_height=”100dp”
        android:text=”@string/test”/>

</LinearLayout>

Android中的layout_gravity和gravity的区别[通俗易懂]

发现,整个layout已经居中了。因为我们设置的width和height是wrap_content,所以layout的大小就是TextView的大小。而外面黑色部分就是andoroid的rootView。这里不做详细说明。

然后我们先将layout的width和height设置为match_parent。看看gravity有什么作用。

<?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:gravity=”center”
    android:orientation=”vertical” >
    
    <TextView
        android:background=”@android:color/holo_blue_light”
        android:textColor=”@android:color/black”
        android:layout_width=”500dp”
        android:layout_height=”100dp”
        android:text=”@string/test”/>

</LinearLayout>

发现效果跟上图的效果一样。Layout里面的TextView也是居中的。所以就知道,gravity是相对于控件内部居中的。

我们再整合一下,放到TextView里面。看看效果。

<?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” >
    
    <TextView
        android:background=”@android:color/holo_blue_light”
        android:textColor=”@android:color/black”
        android:layout_gravity=”center”
        android:gravity=”center”
        android:layout_width=”500dp”
        android:layout_height=”100dp”
        android:text=”@string/test”/>

</LinearLayout>

 

 Android中的layout_gravity和gravity的区别[通俗易懂]

发现TextView里面的文字居中了(gravity起的作用)。TextView的位置相对于LinearLayout也居中了(layout_gravity起的作用)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154449.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PetShop4分析随手贴

    PetShop4分析随手贴 PetShop4简析  跟踪顺序为1.Web/Controls/ItemsControl.ascx.cs2./BLL/Item.cs(此处用工厂实现下面的Item)3./IDAL/IItem.cs/DALFactory/DataAccess.cs(工厂)/Web/web.config(path)/SQLServerDAL/Item.cs(IItem的实

    2022年10月10日
    3
  • Tensorflow2.0使用Resnet18进行数据训练[通俗易懂]

    Tensorflow2.0使用Resnet18进行数据训练[通俗易懂]在今年的3月7号,谷歌在TensorflowDeveloperSummit2019大会上发布TensorFlow2.0Alpha版,随后又发布的了Beta版本。Resnet18结构Tensorflow搭建Resnet18导入第三方库importtensorflowastffromtensorflowimportkerasfromtensorflo…

    2022年5月9日
    156
  • 保姆级-红米AC2100之breed不死后台刷写openwrt官方版&第三方改良版「建议收藏」

    保姆级-红米AC2100之breed不死后台刷写openwrt官方版&第三方改良版「建议收藏」刷机有风险!!!后果自负准备1.红米AC21002.基础的电脑操作breed不死后台第一步:环境准备进入小米路由器原始的管理页,miwifi.com或者192.168.31.1登录之后,检查固件版本第二步:降级这里必须降级,我们降到到2.0.7降级包地址链接提取码:tenk然后等几分钟连接上降级后的wifi,正常是redmi开头无密码连上后重新进入后台192.168.31.1自行设置向导,这里忽略然后检查一下系统版本是否降级成功第三步:写入breed此时注意浏览器

    2025年6月28日
    2
  • Photoshop CC2019 快捷键壁纸 快捷键大全

    Photoshop CC2019 快捷键壁纸 快捷键大全篇幅较长,建议先收藏,以后有需要了随时可以查看一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具【M】 移动工具【V】 套索、多边形套索、磁性套索【L】 魔棒工具【W】 裁剪工具【C】 切片工具、切片选择工具【K】 喷枪工具【J】 画笔工具、铅笔工具【B】 像皮图章、图案图章【S】 历史画笔工具、艺…

    2022年9月29日
    2
  • docker加载配置文件重启服务导致pod重启

    docker加载配置文件重启服务导致pod重启

    2021年6月1日
    93
  • GridView导出Excel的超好样例「建议收藏」

    GridView导出Excel的超好样例「建议收藏」事实上网上有非常多关于Excel的样例,可是不是非常好,他们的代码没有非常全,读的起来还非常晦涩。经过这几天的摸索,最终能够完毕我想要导出报表Excel的效果了。以下是我的效果图。一.前台的页面图Gr

    2022年7月4日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号