1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<code><?xml version=</code><code>"1.0"</code> <code>encoding=</code><code>"utf-8"</code><code>?></code>
<code><LinearLayout xmlns:android=</code><code>"http://schemas.android.com/apk/res/android"</code>
<code> </code><code>android:layout_width=</code><code>"fill_parent"</code>
<code> </code><code>android:layout_height=</code><code>"fill_parent"</code>
<code> </code><code>android:paddingLeft=</code><code>"16dp"</code>
<code> </code><code>android:paddingRight=</code><code>"16dp"</code>
<code> </code><code>android:orientation=</code><code>"vertical"</code> <code>></code>
<code> </code><code><EditText</code>
<code> </code><code>android:layout_width=</code><code>"fill_parent"</code>
<code> </code><code>android:layout_height=</code><code>"wrap_content"</code>
<code> </code><code>android:hint=</code><code>"@string/to"</code> <code>/></code>
<code> </code><code>android:hint=</code><code>"@string/subject"</code> <code>/></code>
<code> </code><code>android:layout_height=</code><code>"0dp"</code>
<code> </code><code>android:layout_weight=</code><code>"1"</code>
<code> </code><code>android:gravity=</code><code>"top"</code>
<code> </code><code>android:hint=</code><code>"@string/message"</code> <code>/></code>
<code> </code><code><Button</code>
<code> </code><code>android:layout_width=</code><code>"100dp"</code>
<code> </code><code>android:layout_gravity=</code><code>"right"</code>
<code> </code><code>android:text=</code><code>"@string/send"</code> <code>/></code>
<code></LinearLayout></code>
<code><!-- android:orientation=</code><code>"vertical"</code> <code>代表方向垂直--></code>
<code><!-- android:layout_weight=</code><code>"1"</code> <code>代表所占权重(比例) message占满其他元素剩余的地方,</code>
<code> </code><code>如果有多个android:layout_weight=</code><code>1</code><code>,则平分剩余空间</code>
<code> </code><code>android:gravity=</code><code>"top"</code><code>表示从上面开始占(写了android:layout_weight的)</code>
<code> </code>
<code> </code><code>android:layout_gravity=</code><code>"right"</code>
<code> </code><code>整个组件的位置居右</code>
<code>--></code>
<a href="http://s1.51cto.com/wyfs02/M01/8B/42/wKiom1hIFsWCFl9PAABRkFm5EbE270.png-wh_500x0-wm_3-wmp_4-s_617713268.png" target="_blank"></a>
<code> </code><code>android:orientation=</code><code>"horizontal"</code> <code>></code>
<code> </code><code>android:layout_width=</code><code>"wrap_content"</code>
<a href="http://s2.51cto.com/wyfs02/M01/8B/3F/wKioL1hIFxSSehAQAAAj4zxp0jY739.png-wh_500x0-wm_3-wmp_4-s_3189827534.png" target="_blank"></a>
线性布局支持给个别的子视图设定权重,通过android:layout_weight属性。就一个视图在屏幕上占多大的空间而言,这个属性给其设定了一个重要的值。一个大的权重值,允许它扩大到填充父视图中的任何剩余空间。子视图可以指定一个权重值,然后视图组剩余的其他的空间将会分配给其声明权重的子视图。默认的权重是0.
例如,如果有三个文本框,其中两个声明的权重为1,另外一个没有权重,没有权重第三个文本字段不会增加,只会占用其内容所需的面积。其他两个同样的会扩大以填补剩余的空间,在三个文本域被测量后。如果第三个字段,然后给定的权重为2(而不是0),那么它现在的声明比其他的更重要,所以它得到一半的总的剩余空间,而前两个平均分配剩余的。
本文转自 matengbing 51CTO博客,原文链接:http://blog.51cto.com/matengbing/1880518