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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android listview 实现列表多选

    Android listview 实现列表多选最终实现效果:

    2022年7月17日
    10
  • 彻底卸载MySQL Connector Net

    彻底卸载MySQL Connector Net在win10控制面板中始终无法卸载MySQLConnectorNet。几经波折,终于找到一个成功的方式。故,在此记录。使用微软的Fixproblemsthatblockprogramsfrombeinginstalledorremoved进行卸载。

    2022年7月15日
    20
  • 阿里巴巴字体库_阿里免费45款字体

    阿里巴巴字体库_阿里免费45款字体阿里巴巴字体库https://www.iconfont.cn/

    2022年8月3日
    25
  • 《Android开发从零开始》视频全集「建议收藏」

    《Android开发从零开始》视频全集「建议收藏」这套教程是若水倾情为有一定Java基础的朋友制作的Android开发从零开始视频集合,目前共38集。《Android开发从零开始》文章列表:1.Android开发环境的搭建2.模拟器的使用3.第一个Android程序4.TextView控件学习5.EditText控件学习6.DDMS视图&Button7.Intent初级学习8

    2022年5月9日
    37
  • 偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘

    偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘今天来给大家谈一谈如何高效地学习编程。无论什么时候,找到学习的目标,以及学习的套路都非常的重要。找不到的话,就只能事倍功半,付出了很多努力,却迟迟得不到最好的回报。三四年前,我特别喜欢收藏文章,觉得有些技术文写得真好,忍不住收藏了!等过了一段时间后,闲得无聊,就去翻收藏夹,想着学一波,谁知道竟然找不到——不是微信给我删了,而是收藏夹里躺的“尸体”实在是太多了,根本就找不到。后来,我就总结了一个小窍门——每周收藏夹里最多躺五篇文章,如果想进来第六篇,之前的必须得清一篇。别小看这个小窍门,它真的有督促我去

    2022年9月27日
    0
  • 用Nacos替换Eruka步骤,及遇到的问题[通俗易懂]

    用Nacos替换Eruka步骤,及遇到的问题[通俗易懂]替换步骤1.下载server端从官方文档可以看到下载启动步骤:nacos快速开始并且启动Nacos服务端2.项目中修改POM原有pom里的Eruka相关都删除掉,然后增加:<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><v

    2022年8月21日
    8

发表回复

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

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