建立简单的用户界面
1、在XML中定义界面布局而不是在运行时去动态生成布局是有多个原因的,其中最重要的一点是这样可以使得你为不同大小的屏幕创建不同的布局文件。
2、使用wrap_content指定之后,这个视图将只占据内容大小的空间,如果你使用了match_parent,这时view将会布满整个屏幕,因为它将适应父布局的大小。
3、当你在用户界面定义一个文本的时候,你应该把每一个文本字符串列入资源文件。这样做的好处是:对于所有字符串值,字符串资源能够单独的修改,在资源文件里你可以很容易的找到并且做出相应的修改。
4、对于所有的View默认的权重是0,如果只设置了一个View的权重大于0,则该View将占据除去别的View本身占据的空间的所有剩余空间。因此这里设置EditText的权重为1,使其能够占据除了按钮之外的所有空间。
5、为了提升布局的效率,在设置权重的时候,应该把EditText的宽度设为0dp,如果设置"wrap_content"作为宽度,系统需要自己去计算这个部件所占有的宽度,而此时因为设置了权重,所以系统自动会占据剩余空间,EditText的宽度最终成了不起作用的属性。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText
android:id = "@+id/edit_message"
android:layout_width="0"
android:layout_weight="1"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"/>
</LinearLayout>