android:layout_gravity和android:gravity属性的区别

android:layout_gravity和android:gravity属性的区别,第1张

概述一、介绍:gravity的中文意思就是”重心“,就是表示view横向和纵向的停靠位置(1).android:gravity:是对view控件本身来说的,是用来设置view本身的内容应该显示在view的什么位置,默认值是左侧。也可以用来设置布局中的控件位置(2).android:layout_gravity:是相对于包含改元素的

一、介绍:

   gravity的中文意思就是”重心“,就是表示vIEw横向和纵向的停靠位置

  (1).androID:gravity:是对vIEw控件本身来说的,是用来设置vIEw本身的内容应该显示在vIEw的什么位置,默认值是左侧。也可以用来设置布局中的控件位置

  (2).androID:layout_gravity:是相对于包含改元素的父元素来说的,设置该元素在父元素的什么位置;

  比如TextVIEw: androID:layout_gravity表示TextVIEw在界面上的位置,androID:gravity表示TextVIEw文本在TextVIEw的什么位置,默认值是左侧.

二、使用过程中失效

androID:gravity : 表示当前VIEw,即控件,内部的东西的,对齐方式常见的是:tableRow中的buttonEditText(内部)的文字button(内部)的文字androID:layout_gravity: 表示当前VIEw,即控件本身,在父一级内的(即父一级控件所给当前子控件所分配的显示范围内)的对齐方式常见的是:当前EditText(在父一级lineLayout所分配给其的显示范围内)的对齐方式当前的button(在父一级tableRow所分配给其的显示范围内)的对齐方式 ->此处需要注意的是,很多时候,改变button内的layout_gravity,常看不到改动的效果,是因为其显示范围和位置,已经由父一级的tableRow的gravity决定了。下面的代码是设置button的显示效果

 1 <?xml version="1.0" enCoding="utf-8"?> 2 <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" 3     androID:layout_wIDth="match_parent" 4     androID:layout_height="match_parent" 5     androID:orIEntation="vertical" > 6  7     <button 8         androID:layout_wIDth="250dp" 9         androID:layout_height="wrap_content"10         androID:layout_gravity="right"11         androID:gravity="right"12         androID:text="文字的gravity属性" />13 14 </linearLayout>

结果如下:

可以看得出来button的位置由于layout_gravity的right属性位于vIEw的右侧,而该button的内容也由于gravity的设置位于了右侧。

但是当修改了外层的linearlayout的orIEntation属性时:就会发生变化

 1 <?xml version="1.0" enCoding="utf-8"?> 2 <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" 3     androID:layout_wIDth="match_parent" 4     androID:layout_height="match_parent" 5     androID:orIEntation="horizontal" > 6  7     <button 8         androID:layout_wIDth="250dp" 9         androID:layout_height="wrap_content"10         androID:layout_gravity="right"11         androID:gravity="right"12         androID:text="文字的gravity属性" />13 14 </linearLayout>

可以看得出来此处androID:layout_gravity="right"属性设置无效。

通过验证得出来:

        (1) 当我们的linearLayout的orIEntation的属性值是horizontal也就是水平方向时:--->我们可以设置控件的layout_gravity属性值为:竖直方向的变化比如bottom,top,center_vertical。

        (2) 当我们的linearLayout的orIEntation的属性值是vertical也就是竖直方向是:--->我们可以设置控件的layout_gravity属性值为:水平方向的变化比如right,left,center_horizontal。

        (3)这个结论表明,layout_gravity属性时子控件相对于父布局的相对位置,一旦父布局写死了方向水平或者垂直,在该方向上就只能是默认变化,子控件无法干预,但是在与之相对的方向上子控件可以自由变幻,想想也是可以理解的,老子的方向订好了,你只能是往前一点或者往后一点,想直接达到终点这不行,但是允许你出去找小朋友玩耍~~~

        (4)有一个比较特殊的是center,不管是横向还是纵向的时候,它总有一个方向起作用

 

androID:gravity : 表示当前VIEw,即控件,内部的东西的,对齐方式常见的是:tableRow中的buttonEditText(内部)的文字button(内部)的文字androID:layout_gravity: 表示当前VIEw,即控件本身,在父一级内的(即父一级控件所给当前子控件所分配的显示范围内)的对齐方式常见的是:当前EditText(在父一级lineLayout所分配给其的显示范围内)的对齐方式当前的button(在父一级tableRow所分配给其的显示范围内)的对齐方式 ->此处需要注意的是,很多时候,改变button内的layout_gravity,常看不到改动的效果,是因为其显示范围和位置,已经由父一级的tableRow的gravity决定了。开始在code,我的个人特色。 总结

以上是内存溢出为你收集整理的android:layout_gravity和android:gravity属性的区别全部内容,希望文章能够帮你解决android:layout_gravity和android:gravity属性的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存