Android之权重layout_weight的真正用法

96 篇文章 3 订阅
订阅专栏

layout_weigh——权重  总的来说就是屏幕的剩余空间按比例分配

首先声明只有在Linearlayout中,该属性才有效。之所以android:layout_weight会引起争议,是因为在设置该属性的同时,设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。LinearLayout为水平的时候和垂直都是一样的效果,现在讨论为水平的时候的效果。

如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_weight="1"
        android:background="#ff0000"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="11111" />
    <TextView
        android:layout_weight="3"
        android:background="#00ff00"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="33333" />

</LinearLayout>

上面的布局将两个TextView的宽度均设为match_parent,一个权重为1,一个权重为3.得到效果如下:


可以看到权重为1的反而占了四分之三!

再看如下布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_weight="1"
        android:background="#ff0000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="11111" />
    <TextView
        android:layout_weight="3"
        android:background="#00ff00"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="33333" />

</LinearLayout>
宽度为wrap_content,效果如下图:


左边 TextView占比四分之一,又正常了。

android:layout_weight的真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比!

设屏幕宽度为L,在两个view的宽度都为match_parent的情况下,原有宽度为L,两个的View的宽度都为L,那么剩余宽度为L-(L+L) = -L, 左边的View占比四分之三,左边的总宽度是L+(-L)*1/4 = (3/4)L.事实上默认的View的weight这个值为0,一旦设置了这个值,那么所在view在绘制的时候执行onMeasure两次的原因就在这。

Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成wrap_content是一样的。这样weight就可以理解为占比了!






Android studio:ayout_weight属性的用法
那人独钓寒江雪
10-17 523
否则,额外空间将在权重大于0的所有视图中按比例分配。Button1所占空间 = 1个match_parent空间+(-2个match_parent空间)*2/5 = 1/5个match_parent空间。Button3所占空间 = 1个match_parent空间+(-2个match_parent空间)*2/5 = 1/5个match_parent空间。Button2所占空间 = 1个match_parent空间+(-2个match_parent空间)*2/6 = 1/3个match_parent空间。
android:layout_weight用法
心有猛虎,细嗅蔷薇
05-30 2885
对于android:layout_weight用法主要看两点: 1: android:layout_weight的值越小说明优先级越高,首先被渲染。 2: 在layout_width設置為fill_parent的時候,layout_weight所代表的是你的控件要首先尽可能的大,但這個大是有限度的,即fill_parent. 在layout_width設置為wrap_co
Android:layout_weight用法
不积硅步,无以至千里!
12-30 2664
  layout_weight是LinearLayout中View布局里一个很重要的属性。  所有view中的layout_weight缺省值都是为0,意味着他们只在屏幕上占据它们需要显示的空间大小。  activity根据这个View的比0大的layout_weight值来划分剩余的空间和其它Views定义的layout_weight也按比例进行空间的划分。  举例说明:假设在LinearLayout布局中,水平方向上有一个TextView和两个EidtText. TextView没有定义layout_w
android layout_weight的使用详解
qq_43138689的博客
03-19 1767
一直没理解在LinearLayout中的layout_weight属性的意义,使用的时候都是将子控件的layout_width或者layout_height设置为0,然后在设置layout_weight权重值,以至于在被问到如果设置了layout_width为具体的值时对layout_weight的影响时一脸懵逼。然后看到了这篇文章,终于豁然开朗。 原来layout_weight属性的意义就是将父控件的剩余空间按照设置的权重比例再分配,也就是在布局的时候,系统先按照view的layout_width和la
android:layout_weight 使用方法
Control Complexity
05-19 297
面是来自SDK的一句话: In order to improve the layout efficiency when you specify the weight, you should change the width of theEditText to be zero (0dp). Setting the width to zero improves layout performance b
Android layout_weight使用方法及实例
09-05
下面我们将详细探讨`layout_weight`的使用方法和实例。 首先,`layout_weight`属性的作用是在LinearLayout中定义一个子视图所占的相对权重。当LinearLayout的`orientation`设置为`horizontal`(水平方向)时,`...
Android应用中通过Layout_weight属性用ListView实现表格
09-02
Android应用开发中,`Layout_weight`属性是一个非常关键的概念,尤其在使用`LinearLayout`时。`Layout_weight`用于在`LinearLayout`中控制子视图(Views)如何平分剩余空间,这对于创建灵活且响应式的用户界面至关...
Android ListView实现表格:Layout_weight属性详解
"这篇文章主要讲解了如何在Android应用中通过使用`Layout_weight`属性与`ListView`来实现表格效果。作者首先对`Layout_weight`属性进行了深入的解释,并指出在通常开发中,开发者往往用`LinearLayout`和`...
Android layout_weight用法图解
A2BGeek的专栏
05-20 1871
直接上代码和图片。 情况一: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="hor
android 权重的使用
weixin_34204057的博客
03-16 116
在做菜单或者需要横向均匀布局时,可能会用到权重,这里给出一个小例子 <?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_p...
透析Android权重使用及分配规则(layout_weight
lemonGuo的大脑皮层、小脑、海马体、杏仁核.....
08-09 9643
平常我们在使用线性布局LinearLayout的时候,会用到权重layout_weight,将控件的宽度(或高度)设为0,再设置它的权重即可,控件呈现呈现出的大小与权重比例相吻合。方法简单,自是没有什么好说的,可是你们有想过将控件的宽和高全部设置,再去设置权重,这个呈现出的比例是怎样?权重的分配规则又是如何? 下面通过几个例子来了解一下:权重layout_weight):即为当前线性布局指定方向(
android:layout_weight总有你不知道的用法
andygo_520的博客
07-07 833
之前对android:layout_weight用法大概只知道下面第一种用法,后来在做“类似微信主界面”的时候,遇到了怎样将FrameLayout占据除底部标签栏之外的空间的问题,也就是下文中第二种用法。是的,android:layout_weight总有你不知道的用法,受益不少,先分享之。         原文地址:http://www.cnblogs.com/fangyucun/p/3
android layout_weight的使用注意点
ostracod
11-16 3659
android layout_weight使用说明 layout_weight权重的意思,也就是各个控件所占的比重,用在LinearLayout布局中。当我们使用layout_weight的时候,layout_width和layout_height有三种表示方法,我们以layout_width来作说明,分别来看: 第一种: layout_width为0dp 我们在
android 权重的通俗易懂理解
安卓开发工程师
08-01 1876
android 权重通俗易懂理解
Android 布局之LinearLayout 子控件weight权重的作用详析
yazitea的专栏
05-30 1032
以前看到过,关于weight权重的一些说法
android 高度上分权重,android weight权重)的详细分析
weixin_29706351的博客
05-26 722
首先要明确权重分配的是那些空间?权重是依照比例分配屏幕的剩余空间对这句话不理解的能够看下图假如我们希望剩余的空间平分给空间1 和空间2 ,我们分别在2个控件的设置android:layout_weight="1"上面算是对权重的分析,详细使用方法例如以下先看一段代码吧xmlns:tools="http://schemas.android.com/tools"android:layout_width...
Android weight属性详解
weixin_30628077的博客
04-27 227
android:layout_weight是一个经常会用到的属性,它只在LinearLayout中生效,下面我们就来看一下: 当我们把组件宽度设置都为”match_parent”时: <Button android:layout_width="match_parent" android:layout_height="wrap...
Android LinearLayout weight布局
sshbaibai的博客
09-28 161
假设屏幕宽度为 X   第一次   确定屏幕宽度 控件1为x 控件2为x 控件3为x   第二次  确定剩余空间 a=x-x-x-x= - 2x 手机的宽度减去空间的宽度=剩余空间 控件的宽度=控件的宽度+(当前控件的权重/设置的权重总值)*剩余的空间 x+1/5*-2x=3/5x...
Android之LinearLayout-weight-图
gentlebreeze_ws的博客
05-26 292
Android之LinearLayout布局涉及layout_weight使用-及图片的添加xml方式实现下图效果代码修改前代码添加图片思路方法一:方法二: xml方式实现下图效果 代码 修改前代码 不清楚layout_weight的使用,只要用到的地方宽高都用match_parent <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res
写文章

热门文章

  • Java Set集合的详解 212364
  • Java 构造函数的详解 184034
  • Java Map集合的详解 72164
  • Java中JDK和JRE的区别是什么?它们的作用分别是什么? 67922
  • Java 迭代器Iterator的详解 57641

分类专栏

  • 安卓 96篇
  • java基础 52篇
  • Servlet 9篇
  • Hibernate 14篇
  • Spring 13篇
  • Struts2 9篇
  • 杂谈 5篇
  • Java面试 31篇
  • JSP 2篇
  • JS 1篇
  • Java设计模式 20篇
  • 软件测试 22篇
  • Linux
  • MySQL 9篇
  • Jmeter 2篇

最新评论

  • Java Set集合的详解

    JungleCoding: 作者写的不严谨

  • Java Set集合的详解

    约束112: Object 类的 hashCode 方法返回对象的内存地址,默认实现并不适用于内容相同但内存地址不同的对象。 Object 类的 equals 方法比较两个对象的引用,只有当两个引用指向同一个对象时才返回 true,而不比较对象的内容。 所以需要重写hashCode和equals方法

  • Java 构造函数的详解

    霖宁霖宁: 大米爆感谢族长夫人分享表情包

  • Hibernate中的Session详解

    PaoShan: 哈哈哈哈王俊凯夫人,让我眼前一亮

  • Java Object对象的详解

    带脑子的CV工程师: 王俊凯夫人你多大了,码龄都7年了?

大家在看

  • 酒吧收银系统解决方案——未来之窗行业应用跨平台架构 528

最新文章

  • Jmeter -线程组之间传递参数
  • Jmeter-线程组之间传递Cookies
  • MySQL-触发器
2019年2篇
2017年31篇
2016年253篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家武汉小区玻璃钢雕塑厂家玻璃钢仿真马雕塑厂家山西户外玻璃钢雕塑图片玻璃钢雕塑如来佛像江苏玻璃钢金属雕塑广东玻璃钢景观雕塑款式多样四川玻璃钢雕塑设计企业鹰潭户外玻璃钢雕塑南阳玻璃钢雕塑铸造工艺个性化玻璃钢雕塑玻璃钢雕塑镀金卡通雕塑玻璃钢价格表西洋少女玻璃钢雕塑潍坊商场美陈装饰深圳常用商场美陈采购福建常见商场美陈销售玻璃钢雕塑河南潮南玻璃钢花盆花器湖南玻璃钢牛动物雕塑制作工厂陕西高质量玻璃钢雕塑优势湖北公园玻璃钢雕塑优势和田气球商场美陈装饰联系电话曲阳玻璃钢仿真鹤雕塑赣州抽象玻璃钢雕塑哪家便宜沭阳华耀玻璃钢雕塑玻璃钢小龙虾雕塑舟山玻璃钢人物雕塑价格如何广东玻璃钢雕塑制作哪家好漯河不锈钢玻璃钢人物雕塑厂家供销树脂玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化