環顧一段時間後,我還沒有找到與我的問題相匹配的問題。我的問題是這樣的,我有一個ListView其條目堅持以下佈局:LinearLayout權重不填充父項
<?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="wrap_content"
android:baselineAligned="false"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
amdroid:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:orientation="vertical" >
...
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>
</LinearLayout>
我希望它可以產生在第一嵌套佈局獲取可用寬度的1/4的項,第二變寬度的1/2,第三個寬度爲1/4。儘管如此,這並不是什麼情況。相反,每個嵌套佈局的寬度由於某種原因被包裝。有趣的是,如果我在父LinearLayout中指定了一個特定的寬度而不是「match_parent」,則嵌套的佈局寬度服從預期的權重。例如,下面的產生預期的結果:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="290dp"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
amdroid:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:orientation="vertical" >
...
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
...
</LinearLayout>
</LinearLayout>
顯然,雖然,指定特定寬度忽略權重的整點。所以我的問題是這樣的:爲什麼當使用「match_parent」時,權重實際上並不會填充父LinearLayout,以及如何糾正?
哦,還有一個感興趣的最後一點,Eclipse的圖形佈局預覽產生預期的結果,當「match_parent」用於父LinearLayout寬度。只有在實際設備上仿真或使用嵌套的LinearLayouts的內容才能獲得寬度包裝。我猜這是由於佈局在ListView中的使用,但誰知道呢?
謝謝
在佈局父項中放置android:weightSum =「4」。在此處瞭解更多信息http://stackoverflow.com/questions/6203609/android-percentage-layout-height – extmkv 2014-09-10 23:29:04