一个Button占据整个屏幕的一半宽度,开发文档中对layout_weight属性的描述:

“定义weight总和的最大值。如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值。一个典型的案例是:通过指定子视图的layout_weight属性为0.5,并设置LinearLayout的weightSum属性为1.0,实现子视图占据可用宽度的50。”

XML文件仅仅包含一个Button,它的宽度占据整个屏幕的一半,代码如下:

[html] view plaincopy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent"
  4. android:background="#ffffff"
  5. android:gravity="center"
  6. android:orientation="horizontal"
  7. android:weightSum="1" >
  8. <Button
  9. android:layout_width="0dp"
  10. android:layout_height="wrap_content"
  11. android:layout_weight="0.5"
  12. android:text="@string/activity_main_click_me" />
  13. </LinearLayout>

在上面的xml中,指定Button的android:layout_width属性为0dp,因此需要根据android:weightSum属性决定Button的width。

假设有一个宽度是200dp,android:weightSum属性是1.0的LinearLayout。

在这个LinearLayout中的Button宽度的计算公式如下:

[plain] view plaincopy
  1. Button's width + Button's weight * 200 / sum(weight)

指定Button的width为0dp,weight为0.5,sum(weight)等于1,那么结果如下。

0 + 0.5 * 200 / 1 = 100

当需要根据比例分配布局可用空间的时候,使用LinearLayout的weight属性是很有必要的,这避免了使用硬编码的方式带来的副作用。

如果目标平台是Honeycomb并且使用Fragment,那么大多数案例中都是使用weight在布局文件中为Fragment分配空间。

深入理解如何使用weight会为开发者增添一项重要技能。

Android按比例布局之layout_weight和weightSum的使用相关推荐

  1. 关于android LinearLayout的比例布局(转载)

    关于android LinearLayout的比例布局,主要有以下三个属性需要设置: 1,android:layout_width,android:layout_height,android:layo ...

  2. android设置高度比例,android开发layout按比例布局(详解)

    释放双眼,带上耳机,听听看~! 由于Android的复杂性,在写程序的时候经常会遇见一些难题,也可能会遇见处理不了的问题,下面是技术狗小编详解android layout 按比例布局的代码,一起进入下 ...

  3. android 重叠view 重叠布局,按比例布局

    按比例布局 宽度满屏,高度9:16 <androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="ma ...

  4. Android应用开发(1)---Android五大UI布局的特有属性

    Android五大UI布局的特有属性 Android五大UI布局 1. LinearLayout 线性布局 2. RelativeLayout 相对布局 3. FrameLayout 帧布局,空白布局 ...

  5. android的五大布局(layout)

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建 筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLa ...

  6. Android游戏开发-布局管理

    Android游戏开发-布局管理 2012/5/16 星期三 下午   我们都知道,系统控件一般都会搭载进布局里的,在Android呢,提供了5种布局类型,通过这五种布局之间的相互组合可以构建各种复杂 ...

  7. 【Android】线性布局(LinearLayout)最全解析

    [Android]线性布局(LinearLayout)最全解析 一.LinearLayout概述 二.LinearLayout常用属性 2.1 orientation属性 2.2 gravity属性 ...

  8. android linearlayout属性大全,Android中LinearLayout布局的常用属性总结读书笔记

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 原CSDN博客已弃用,文章会逐渐迁移过来. 应朋友们反馈的Android基础薄弱的问题,决定出一套Android基础教程 ...

  9. android布局置顶_[置顶] Android系统五大布局详解Layout

    我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit等 ...

最新文章

  1. Linux CNTOS7 修改网络配置
  2. 这也太狠了吧!500套Java实用代码,不论工作学习都能用到!
  3. 通过Dapr实现一个简单的基于.net的微服务电商系统
  4. browserCaps与浏览器功能设置
  5. 崇尚个人当前状态的社会
  6. Brave 浏览器宣布集成 IPFS 协议,它会取代 HTTP 吗?
  7. ASP.NET中操作SQL数据库
  8. CPython中多线程的限制
  9. 剪贴板是计算机系统,剪贴板在哪里,手把手教你如何打开电脑剪贴板
  10. SCPM供应链管理专业证书知多少
  11. 高并发下如何快速使用MQ实现缓冲流量,削峰填谷
  12. 微信小程序引入组件以及catchtouchmove实现拖动效果
  13. MySQL数据库(1)~~一起学习数据库冲冲冲
  14. 基于python的dlib库的人脸识别
  15. 软考中级【数据库系统工程师】第1章:计算机系统知识,自学软考笔记,备考2022年5月份软考,计算机硬件系统CPU组成指令寄存器组总线输入输出的程序控制方式计算机体系结构与存储系统加密技术流水线技术
  16. 重症医学数据库MIMIC-IV简介
  17. Android获取手机当前连接的WiFi信息(SSID,IP,连接状态)
  18. 水果网站html,水果.html
  19. 使用filemanager-webpack-plugin将前端项目打包成zip压缩包
  20. 【笔记补发20210402 第1次课】《Linuxprobe RHCE培训 第30期》TJ学员 师从刘遄

热门文章

  1. sql语句(Oracle和sqlserver)
  2. Andrew NG 机器学习编程作业5 Octave
  3. python中控制台输出的颜色方法
  4. python开发基础教程
  5. Roundcube Webmail信息泄露漏洞(CVE-2015-5383)
  6. 【Centos7】安装memcached
  7. python 编程之计算器
  8. HYSBZ 1010 玩具装箱toy (决策单调DP)
  9. oracle 的行级触发器
  10. jquery 获取checkbox的checked属性总是undefined