android gravity和layout_gravity區別

LinearLayout有兩個非常相似的屬性:android:gravity與android:layout_gravity。
區別在於:
android:gravity 用於設置組件本身裏面內容或者子控件的對齊方式,比如Button裏面的文字,如果android:gravity="left",那麼文字文字就會靠左顯示;

android:layout_gravity 用於設置組件在layout容器中對齊方式,比如設置Button的android:layout_gravity="right",則button會在layout容器右邊顯示;

這裏很好區別,android:gravity不帶layout,是設置內容或子控件的對齊方式,android:layout_gravity帶有layout,是用來設置在layout容器中的對齊方式。


另外,設置android:layout_gravity爲left、right、top、bottom時,會受到layout容器orientation排列方式影響。


例如LinearLayout的排列方式爲vertical垂直方式時,那麼,子控件只能設置android:layout_gravity爲left、right纔有效果

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

    <Button
        android:id="@+id/button1"
        android:layout_width="111dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="left"
        android:text="Button" />

</LinearLayout>



如果LinearLayout的排列方式爲horizontal時,那麼,子控件只能設置android:layout_gravity爲top、bottom纔有效果

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

    <Button
        android:id="@+id/button1"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:layout_gravity="bottom"
        android:text="Button" />

</LinearLayout>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章