我想要更好地理解android佈局。在下面的例子中,我解決了我的問題,但只能通過試驗和錯誤。我想了解它爲什麼起作用。android佈局重量和重力問題
我在另一個佈局中設置了「標題」行。我希望第一部分儘可能使用寬度,第二部分只使用它所需要的部分。因此,我將layout_1設置爲1,layout_2的權重爲0.最初,我的layout_width爲match_parent。這導致layout_2佔據整個寬度並使layout_1消失。我最終通過在layout_2上將寬度設置爲wrap_content來修復它。我知道layout_2有寬度wrap_content是有意義的。但不明白爲什麼layout_2 match_parent會佔用整個寬度,當它的權重爲0,layout_1的寬度也是match_parent時。
下面是一個代碼示例。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent">
<LinearLayout android:id="@+id/header_layout_1"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_gravity="center" >
<LinearLayout android:orientation="horizontal"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="center"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="some text"/>
</LinearLayout>
<!-- changing width on header_layout_2 to match_parent takes over layout, wrap_content gives me what I want -->
<LinearLayout android:id="@+id/header_layout_2"
android:orientation="horizontal"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_weight="0">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="some more text"/>
</LinearLayout>
</LinearLayout>
<!--end of header-->
</LinearLayout>