LinearLayout布局下android:layout_weight用法 10
我自己的测试是:设置LinearLayout的android:orientation="hozirontal",android:layout_width="match_p...
我自己的测试是:
设置LinearLayout的android:orientation="hozirontal",android:layout_width="match_parent"
三个按钮,android:layout_weight分别置为1、2、3,设屏幕宽度为W
(1)当设置android:layout_width="0dp"时
三者宽度按照1:2:3的比例分割屏幕宽度,推测是直接按比例分割屏幕空间了
(2)当设置android:layout_width="match_parent"时
三者按比例分割剩余空间(W-3*W=-2W),
W1=W+1/6*(-2W)=2/3W;W2=W+2/6*(-2W)=1/3W;W3=W+3/6(-2W)=0。
因此,仅显示按钮1和2,占据2/3W和1/3W
(3)当设置android:layout_width="wrap_content"时
当包裹住内容后屏宽依然很充足实,三者按比例分割屏幕空间,也即宽度1:2:3;
当包裹住内容后屏宽不足,三者的宽度按照优先包裹住内容,然后按比例分割剩余空间,因此,内容长短不一造成的结果会很不一样。
实际测量时,发现当设置android:layout_width="0dp"时,三者宽度比例只是大致是1:2:3,实际有偏差,权重值越大,偏差也越大,获得的越多,如我的一组测量数据是17:38:57。其他几组也类似。
这就更加迷惑了,这玩意儿整这么复杂是为哪般?到底内部机制是什么?
下面是我测试的几张图:
0dp
match_parent
wrap_content——一号
wrap_content——一号按钮
warp_content——一号按钮思密达 展开
设置LinearLayout的android:orientation="hozirontal",android:layout_width="match_parent"
三个按钮,android:layout_weight分别置为1、2、3,设屏幕宽度为W
(1)当设置android:layout_width="0dp"时
三者宽度按照1:2:3的比例分割屏幕宽度,推测是直接按比例分割屏幕空间了
(2)当设置android:layout_width="match_parent"时
三者按比例分割剩余空间(W-3*W=-2W),
W1=W+1/6*(-2W)=2/3W;W2=W+2/6*(-2W)=1/3W;W3=W+3/6(-2W)=0。
因此,仅显示按钮1和2,占据2/3W和1/3W
(3)当设置android:layout_width="wrap_content"时
当包裹住内容后屏宽依然很充足实,三者按比例分割屏幕空间,也即宽度1:2:3;
当包裹住内容后屏宽不足,三者的宽度按照优先包裹住内容,然后按比例分割剩余空间,因此,内容长短不一造成的结果会很不一样。
实际测量时,发现当设置android:layout_width="0dp"时,三者宽度比例只是大致是1:2:3,实际有偏差,权重值越大,偏差也越大,获得的越多,如我的一组测量数据是17:38:57。其他几组也类似。
这就更加迷惑了,这玩意儿整这么复杂是为哪般?到底内部机制是什么?
下面是我测试的几张图:
0dp
match_parent
wrap_content——一号
wrap_content——一号按钮
warp_content——一号按钮思密达 展开
2个回答
展开全部
layout_weight意思是布局比重的意思,在线性布局中常用layout_weight,分割布局。
通常线性布局中宽高布局常用android:layout_width=match_parent|wrap_content,android_height=match_parent|wrap_content来进行布局,如果要用比重布局,通常android:layout_width属性就会不起作用,设置为"0";根据想要布局的比例,设定android:layout_weight的值,值越大,占的布局就越大。
考虑到Android多版本的兼容问题,通常使用match_parent而不使用fill_parent.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,跟你学习了!~~你这测试滴真够彻底的!~~希望你能找到答案啊!~~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询