首页 > 其他分享 >android:layout_gravity 和 android:gravity 的区别

android:layout_gravity 和 android:gravity 的区别

时间:2023-06-22 19:33:26浏览次数:53  
标签:container vertical gravity layout android its size

gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。

android:layout_gravity 和 android:gravity 的区别

从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。

android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。

比如说button: android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。

 

可选值

这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。

而且这些属性是可以多选的,用“|”分开。

默认这个的值是:Gravity.LEFT

对这些属性的描述:

出自:

http://androidmirror.com/guide/topics/resources/drawable-resource.html

http://android.toolib.net/reference/android/graphics/drawable/ClipDrawable.html

Value

Description

top

Put the object at the top of its container, not changing its size.

将对象放在其容器的顶部,不改变其大小.

bottom

Put the object at the bottom of its container, not changing its size.

将对象放在其容器的底部,不改变其大小.

left

Put the object at the left edge of its container, not changing its size.

将对象放在其容器的左侧,不改变其大小.

right

Put the object at the right edge of its container, not changing its size.

将对象放在其容器的右侧,不改变其大小.

center_vertical

Place object in the vertical center of its container, not changing its size.

将对象纵向居中,不改变其大小.

垂直对齐方式:垂直方向上居中对齐。

fill_vertical

Grow the vertical size of the object if needed so it completely fills its container.

必要的时候增加对象的纵向大小,以完全充满其容器.

垂直方向填充

center_horizontal

Place object in the horizontal center of its container, not changing its size.

将对象横向居中,不改变其大小.

水平对齐方式:水平方向上居中对齐

fill_horizontal

Grow the horizontal size of the object if needed so it completely fills its container.

必要的时候增加对象的横向大小,以完全充满其容器.

水平方向填充

center

Place the object in the center of its container in both the vertical and horizontal axis, not changing its size.

将对象横纵居中,不改变其大小.

fill

Grow the horizontal and vertical size of the object if needed so it completely fills its container. This is the default.

必要的时候增加对象的横纵向大小,以完全充满其容器.

clip_vertical

Additional option that can be set to have the top and/or bottom edges of the child clipped to its container's bounds. The clip is based on the vertical gravity: a top gravity clips the bottom edge, a bottom gravity clips the top edge, and neither clips both edges.

附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.

垂直方向裁剪

clip_horizontal

Additional option that can be set to have the left and/or right edges of the child clipped to its container's bounds. The clip is based on the horizontal gravity: a left gravity clips the right edge, a right gravity clips the left edge, and neither clips both edges.

附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.

水平方向裁剪

简单记忆 : horizontal 都是操作的水平方向,即横向, vertical 都是炒作的垂直方向,即纵向。


对于LinearLayout何时生效的问题

参看:也谈layout_gravity和gravity
http://www.lephone.net/viewthread.php?tid=325

对于 LinearLayout

当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。

当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

标签:container,vertical,gravity,layout,android,its,size
From: https://blog.51cto.com/u_15588078/6535333

相关文章

  • Android设置窗口的背景图
    drawable-hdpi、drawable-mdpi、drawable-ldpi的区别:Android2.1(含)以后的版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个目录,这三个目录主要是为了支持多分辨率。dpi是“dotperinch”的缩写,每英寸像素数。四种密度分类:ldpi(low),mdpi(medium),hdpi(high),a......
  • Android 使用 TableLayout 布局拉伸宽度
    布局文件<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"android:layout_width="fill_parent" android:lay......
  • Android的进程,线程模型
    Android包括一个应用程序框架、几个应用程序库和一个基于Dalvik虚拟机的运行时,所有这些都运行在Linux内核之上。通过利用Linux内核的优势,Android得到了大量操作系统服务,包括进程和内存管理、网络堆栈、驱动程序、硬件抽象层、安全性等相关的服务。 有关Java虚拟机跟进程,线......
  • Android入门--写一个最简单的计算器
    这里将写的计算器是借用了下面写的计算器,并把其中需要注意的地方一一补充罗列:http://www.iteye.com/topic/141029需要演示的结果:之前假设已经配置好Android开发环境,如果没有,请参看下面2篇文章:Win7配置Android开发环境ubuntu10.10下安装android2.2开发环境 第一步,新......
  • ubuntu10.10 下安装android 2.2开发环境
    一、安装Java6安装jre/jdksudoapt-getinstallsun-java6-binsun-java6-jresun-java6-jdk使用这个命令安装后,默认是安装在/usr/lib/jvm/ 目录下,以我为例,我这里是/usr/lib/jvm/java-6-sun-1.6.0.24目录,/usr/lib/jvm/下还有一个快捷方式java-6-sun有时候会安装多个jdk,......
  • Kotlin入门|Android Kotlin 初学者学习网站+最新学习资源
    Kotlin是一门可以运行在Java虚拟机、Android和浏览器上的静态语言,它与Java100%兼容。如果你对Java非常熟悉,一般上手Kotlin也会比较容易。在我从事Android开发的多年来,也积累了很多专业的学习网站和宝贵的学习资源,现无偿分享给大家,不求面面俱到,只希能给各位Android开发者和带来......
  • Android 组件化开发的新浪潮,成为了最受欢迎的框架, 有一种架构叫组件化,你还不会?
    有一种架构叫组件化,你还不会?组件化作为客户端项目架构侧一个非常重要的方案,近年来业界也在不断的探索以及各大厂都在不断的实践。每个大厂内部的各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。阿里面试最近听一位坚守在阿里的同......
  • Android内存优化分析总结,这一篇就够了
    一、内存优化概念1.1为什么要做内存优化?内存优化一直是一个很重要但却缺乏关注的点,内存作为程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生OOM(outofmemory)崩溃。在你认真跟......
  • 最新《Android Framework开发文档》(经典Binder、Handler、AMS等面试题加解析)
    Android架构从从顶层到底层分别为应用程序层、应用程序框架层、运行层(系统Native库和Android运行时环境)和Linux内核层四部分。Framework即应用框架层,是Android架构的关键组成部分,为应用提供各种api和组件来支持开发。如今行业趋于饱和,开发技术越来越卷,Framework也已逐渐成为高薪......
  • 那些年Android UI开发中所遇到的各种坑
    1.软键盘隐藏问题问题描述:Activity按下返回调用finish()方法后,界面已经销毁,但是软键盘依然还留在屏幕上,这让当前正在显示的Activity没有输入框的完全没法看,非常严重的视觉影响。尝试方案:寻找各种方法去隐藏软键盘,网上各种找。思路是在活动退出时,会调用onDestroy()方法。销毁界面,在......