-1

在我的应用程序中,我必须以适当的比例(宽度)排列我的小部件。我有 6 个小部件,我想以2:2:4:4:1:1仅考虑宽度的比例对齐。我试过这个,但我没有得到正确的解决方案。

<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 和 weight 属性。

希望这会奏效。

于 2012-12-27T05:07:11.733 回答
0

layout_weight 不决定小部件的大小。在布局中,每个小部件都会测量其大小并需要父布局的空间。然后父母根据layout_weight的比例将剩余空间分配给所有孩子。因此,在您的情况下,您可以指定 layout_width=0。这样,widgets 不需要任何空间,然后父布局可以根据 layout_weight 分配空间。

于 2012-12-27T04:25:53.123 回答
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 回答