在之前版本的SDK中是否有这个现象我不是很确定,我也没有去求证,但是在我目前正在使用的2.3版本的SDK上我发现了一个很有意思的事情,是关于layout的XML里的layout_weight属性的问题。 我们都知道,layout_weight设置的是这个控件在屏幕中所占据的位置的宽度或者高度。其设置值是一些int型的数值。 接下来我们看下面的代码片段 这个代码片段中我们可以了解到,在一行中,我们放置了两个控件,一个输入框(EditText),一个按钮(Button),对于他们的宽度呢,我们希望它们能够根据屏幕的宽度进行自适应,因此我们分别对它们使用了android:layout_weight="8"和android:layout_weight="2"这样的属性设置。也就是说我们期望输入框占屏幕宽度的80%,按钮占屏幕宽度的20%。 如下图所示,我们果然得到了我们想要的效果: 下面我们对上面的代码做点稍微的改动: 主意到上面红色的部分了吗?我们只改变了这些,但是输入框和按钮的宽度却发生了很大的变化。 输入框占了屏幕宽度的20%,按钮占了屏幕宽度的80%,是不是很有意思? 我不确定在之前的版本上是不是也有同样的现象,我个人之前没有留意到这个事情,因此发出来跟大家分享一下,早就发现了这个“秘密”的大虾可以去打酱油了 ![]() |
另外,使用wrap_content和fill_parent,当layout_weight的值都相同时,表现出来的结果也是不一样的 下图中的每一列的layout_weight的值都为1 当每一列的宽都使用fill_parent的时候 android:layout_width="fill_parent" 每一列的宽度都是一样的 如下图 当每一列的宽都使用wrap_content的时候 android:layout_width="wrap_content" “10月”,“11月”,“12月”几列的宽度,明显要宽一些 因为它们的字多一些 如下图 |