-1

私のアプリケーションでは、ウィジェットを適切な比率 (幅) で配置する必要があります。2:2:4:4:1:1ウィジェットが6つあるのですが、幅だけを考えた比率で揃えたいです。これを試しましたが、正しい解決策が得られません。

<LinearLayout
            android:id="@+id/register_header12"
            android:layout_width="fill_parent"
            android:layout_height="55dp"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="5dp"
            android:weightSum="14"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/register_title_image"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="2"
                android:contentDescription="@string/app_icon_desc"
                android:src="@drawable/logo_blue" />

            <TextView
                android:id="@+id/register_title_name"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="2"
                android:text="Name"
                android:textStyle="bold" />

            <Button
                android:id="@+id/bbb"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@drawable/bar_button"
                android:text="BBB"
                android:textStyle="bold" />

            <Button
                android:id="@+id/aaa"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@drawable/bar_button"
                android:text="AAA"
                android:textStyle="bold" />

            <ImageView
                android:id="@+id/setting"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="4"
                android:src="@drawable/ic_menu_manage"
                android:onClick="showSettings"

              />

            <ImageView
                android:id="@+id/signout"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="4"
                android:src="@drawable/ic_menu_blocked_user"
                android:onClick="doSignOut"
                />
        </LinearLayout>

最善の方法を教えてください..

4

4 に答える 4

4

すべてのandroid:layout_widths を 0 に変更します。これにより、 weight プロパティが幅を決定できるようになり、問題が解決するはずです。

于 2012-12-27T04:23:37.290 に答える
2

まず、線形レイアウトに weightSum=(あなたの場合のすべてのレイアウトの重みの合計は 14) を入れます。

次に、比率に従って子ビューの幅をwrap_contentと重量属性にします。

これがうまくいくことを願っています。

于 2012-12-27T05:07:11.733 に答える
0

ラルガの答えは正解です。コードについては、以下のコードを参照できます。

コードを確認してください:

<LinearLayout
        android:id="@+id/register_header12"
        android:layout_width="fill_parent"
        android:layout_height="55dp"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="5dp"
        android:weightSum="14"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/register_title_image"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="2"
            android:contentDescription="@string/app_icon_desc"
            android:src="@drawable/logo_blue" />

        <TextView
            android:id="@+id/register_title_name"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="2"
            android:text="Name"
            android:textStyle="bold" />

        <Button
            android:id="@+id/bbb"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="@drawable/bar_button"
            android:text="BBB"
            android:textStyle="bold" />

        <Button
            android:id="@+id/aaa"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="@drawable/bar_button"
            android:text="AAA"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/setting"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="4"
            android:src="@drawable/ic_menu_manage"
            android:onClick="showSettings"

          />

        <ImageView
            android:id="@+id/signout"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="4"
            android:src="@drawable/ic_menu_blocked_user"
            android:onClick="doSignOut"
            />
    </LinearLayout>

これがあなたを助けることを願っています。

于 2012-12-27T04:32:51.667 に答える
0

layout_weight はウィジェットのサイズを決定しません。レイアウトでは、各ウィジェットはそのサイズを測定し、親レイアウトからのスペースを必要とします。次に、layout_weight の比率に従って、親が残りのスペースをすべての子に割り当てます。したがって、あなたの場合は、layout_width=0 を指定できます。このように、ウィジェットはスペースを必要とせず、親レイアウトは layout_weight に従ってスペースを割り当てることができます。

于 2012-12-27T04:25:53.123 に答える