您的位置:首页 > 移动开发 > Android开发

android中关于weight宽度的算法

2016-04-05 16:44 519 查看
在之前的学习中一直对weight的宽度存在误解导致有些时候控件的宽度与自己设想的事与愿违,今天刚好看到weight宽度的算法,在这里记录一下


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<Button
android:id="@+id/Button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/Button2"
android:layout_weight="2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

在这个例子中或许有人一开始会和我一样存在这样的误解:Button1的宽度占1/3    Button2的宽度占2/3  

但是在实际中却恰好相反



weight计算出来的宽度 = 控件的宽度+剩余空间所占百分比的宽度

假设屏幕的宽度是L 

Button1它的宽度是“match_parent”  即L

同理Button2它的宽度也是L

Button1的实际宽度 = L+(L-2L)*1/3 = 2/3L

Button2的实际宽度 = L+(L-2L)*2/3 = 1/3L

剩余空间 = 屏幕宽度 - Button1 宽度 - Button2 宽度 = L - 2L = -L
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: