layout_gravity和gravity的用法

layout_gravity和gravity的用法也谈layout_gravity和gravity的用法相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过。简单使用一下搜索工具,我们就不难找到下面这样的答案:layout_gravity表示组件自身在父组件中的位置gravity            表示组件的子组件在组件中的位置看似很简单嘛~)貌似大伙瞅一眼就明白了。

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

相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过。

简单使用一下搜索工具,我们就不难找到下面这样的答案:

layout_gravity 表示组件自身在父组件中的位置

gravity             表示组件的子组件在组件中的位置

看似很简单嘛~)

貌似大伙瞅一眼就明白了。今天我要说的就是这貌似瞅一眼就明白的道理。
为什么这么简单的道理,总有同学会发现,在“某些时候”,layout_gravity这个属性不好使了,失去了它应有的作用。

于是同学们又开始使用搜索工具,一边还不停的骂:Google做的这个layout真他妈的不好使!
下面我们就网上找来的一个例子来简单描述一种layout_gravity失效的情况。

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <!– android:gravity设置了按钮上面的文字的显示位置,而android:layout_gravity设置了按钮在布局中的显示位置。 –>
  3. <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
  4.         android:orientation=”vertical”
  5.         android:layout_width=”fill_parent”
  6.         android:layout_height=”wrap_content”>
  7.         <Button android:layout_width=”250dip”
  8.                 android:gravity=”right”
  9.                 android:layout_height=”wrap_content”
  10.                 android:text=”我居右显示”
  11.                 android:layout_gravity=”right” />;
  12. </LinearLayout>

复制代码

这段代码的展现效果如下:!

 

layout_gravity和gravity的用法

 

然后我们再看下面这段代码:

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <!– android:gravity设置了按钮上面的文字的显示位置,而android:layout_gravity设置了按钮在布局中的显示位置。 –>
  3. <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
  4.         android:layout_width=”fill_parent”
  5.         android:layout_height=”wrap_content”>
  6.         <Button android:layout_width=”250dip”
  7.                 android:gravity=”right”
  8.                 android:layout_height=”wrap_content”
  9.                 android:text=”我居右显示”
  10.                 android:layout_gravity=”right” />
  11. </LinearLayout>

复制代码

这段代码我们一样设置了android:layout_gravity=”right”,但是它的展现效果却是下面这样的:

 

layout_gravity和gravity的用法

 

于是我们前面所说的情况就发生了,“Google做的这个layout真他妈的不好使!”

问题究竟出在哪里了呢?
细心一点的同学就会发现,下面的这段代码,最外层的LinearLayout少了这样一个属性:androidlayout_gravity和gravity的用法rientation=”vertical”
不错,正是缺少了这个属性才导致了android:layout_gravity=”right”的失效。
因为LinearLayout默认的是:androidlayout_gravity和gravity的用法rientation=”horizontal

也就是说,只有在作为父layout的LinearLayout是androidlayout_gravity和gravity的用法rientation=”vertical” 的时候,android:layout_gravity=”right”才会生效。

到这里本次“讲座”可以结束了吗? No!

看完上面的内容,有同学也许还会发现,当外层的LinearLayout为androidlayout_gravity和gravity的用法rientation=”vertical” 的时候,android:layout_gravity=”bottom”失效了

看到这里相信大家都明白了

下面我们还需要做一个简单的总结:
当作为父layout的LinearLayout的属性为androidlayout_gravity和gravity的用法rientation=”vertical” 的时候,android:layout_gravity=”?”这里设为横向的时候才能生效。比如:left,right,center_horizontal等

当作为父layout的LinearLayout的属性为androidlayout_gravity和gravity的用法rientation=”horizental” 的时候,android:layout_gravity=”?”这里设为纵向的时候才能生效。比如:top,bottom,center_vertical等;

有一个比较特殊的是center,不管是横向还是纵向的时候,它总有一个方向起作用layout_gravity和gravity的用法

另外有几个别急面生的:fill_vertical,fill_horizontal,fill,clip_vertical,clip_horizontal
这几个以前没留意过,莫非是新版本的SDK中,新引进的?分散对齐?很迷惑。
有用过的同学还请不吝赐教一下
layout_gravity和gravity的用法

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159725.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 图解Windows Server服务器上DNS服务器配置

    图解Windows Server服务器上DNS服务器配置图解WindowsServer服务器上DNS服务器配置听语音  | 浏览:1385 | 更新:2018-04-0319:58 1 2 3 4 5 6 7 分步阅读本篇经验将和大家介绍WindowsServer服务器上DNS服务器配置的步骤,希望对大家的工作和学习有所帮助!DNS服务器安装 1…

  • c语言交通灯简单编程_在第一个交通灯处左转的英文

    c语言交通灯简单编程_在第一个交通灯处左转的英文内容介绍原文档由会员½ӨӨ发布交通灯控制系统设计1万字32页包括程序代码,系统原理图,Proteus仿真过程摘要本设计是交通信号灯控制系统,随着社会的不断的进步,社会的不断发展。交通也日渐复杂,交通的自动化也不断更新,交通的一些指挥系统光靠人来完成是远远不够的,这就需要设计各种交通指挥自动化系统来完成这些复杂的工作。从而使交通指挥系统更加有秩序,更加安全。至此本人设计了交通信号灯控制系统,来…

  • 自动滑块验证码识别_滑块验证码原理

    自动滑块验证码识别_滑块验证码原理一、滑块验证码简述有爬虫,自然就有反爬虫,就像病毒和杀毒软件一样,有攻就有防,两者彼此推进发展。而目前最流行的反爬技术验证码,为了防止爬虫自动注册,批量生成垃圾账号,几乎所有网站的注册页面都会用到验证码技术。其实验证码的英文为CAPTCHA(CompletelyAutomatedPublicTuringtesttotellComputersandHumans…

    2022年10月24日
  • FGMap API 帮助文档

    FGMap API 帮助文档

  • Jenkins安装_jenkins和k8s

    Jenkins安装_jenkins和k8s前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

  • 大数据舆情监测与分析_大数据分析系统架构

    大数据舆情监测与分析_大数据分析系统架构前言互联网的飞速发展促进了很多新媒体的发展,不论是知名的大V,明星还是围观群众都可以通过手机在微博,朋友圈或者点评网站上发表状态,分享自己的所见所想,使得“人人都有了麦克风”。不论是热点新闻还是娱乐八卦,传播速度远超我们的想象。可以在短短数分钟内,有数万计转发,数百万的阅读。如此海量的信息可以得到爆炸式的传播,如何能够实时的把握民情并作出对应的处理对很多企业来说都是至关重要的。大数据时代,除了…

发表回复

您的电子邮箱地址不会被公开。

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