天天看点

浅析layout_weight属性,gravity属性,layout_gravity属性

参考:http://developer.android.com/guide/topics/ui/layout/linear.html

layout_weight属性 <基于LinearLayout 下的view>

  • 布局权重,意味这个view在当前布局中占据多大空间(比重)
  • 拥有更大weight值的view被允许扩展填充满parent view.(填满剩余空间)
  • 所有view默认weight值为0

    例子:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/one"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="one" />

    <EditText
        android:id="@+id/two"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:hint="two" />

</LinearLayout>
           

在上述xml中。two的layout_height值设置为任意值都不会影响布局结果,一般我们设置为0dp。

gravity属性

  • 指在当前view大小内,内容的位置。如TextView中,EditText中的文本的位置。(重心)

layout_gravity属性

  • 指当前view在parent view中的位置

注意:

当我们把layout_width 或 layout_height 的值设置为负值时,系统会按照 warp_content 处理。