2

Android レイアウトの重み属性をいじろうとしています。「3 つの子レイアウト」を使用した垂直レイアウトが必要です。最初のレイアウトはスペースの 25%、2 番目のレイアウトは 50%、最後の 25% のスペースを占有します。最後のレイアウトに追加しようとすると、すべてが機能しません。これらの各レイアウトのウェイトはどれくらいにする必要がありますか?

ウェイト属性を 2 つのレイアウト/要素だけで正常に機能させ、その仕組みを理解していますが、3 つ試してみると問題が発生します。

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:orientation="horizontal"
    android:weightSum="100" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:orientation="vertical"
        android:layout_weight="25" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:orientation="vertical"
       android:layout_weight="50" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:orientation="vertical"
        android:layout_weight="25" >
    </LinearLayout>
</LinearLayout>
4

5 に答える 5

4

android:widthすべての子レイアウトで属性が0dpに設定されていることを確認してから、指定weightされていることを確認してください。より詳細な説明が必要な場合は、コードを貼り付ける必要があります。

于 2012-04-23T20:12:22.097 に答える
0

まず、ウェイトは、LinearLayoutsまたはから派生した任意のレイアウトにのみ適用できますLinearLayoutweightSum子の重みは、属性が何であれ、パーセンテージである必要がありますLinearLayoutweightSum=1親を設定する場合LinearLayout、最初の子の割合は.25、2番目の子は.5、3番目の子の割合は.25である必要があります。

編集:javramが言ったように。幅または高さを、それぞれ水平方向か垂直方向0dpかに応じて設定する必要があります。LinearLayout

編集2:また、実際に指定する必要はないと思いますweightSum。それは助けになりますが、私はLinearLayout子供たちをそれぞれの体重がどのようになっているかだけに基づいて分割すると信じています。子1の体重が子2の体重の2倍の場合、子2は画面上で子1の2倍になります。したがって、あなたの場合、子1と3の重みが同じで、子2の値が他の2つの2倍であることを確認してください。

于 2012-04-23T20:14:30.643 に答える