在我的应用程序中,我必须以适当的比例(宽度)排列我的小部件。我有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>
请给我最好的方式..
答案 0 :(得分:4)
将所有android:layout_width
更改为0.这将允许权重属性确定宽度,并应解决您的问题。
答案 1 :(得分:1)
首先在您的线性布局中放置weightSum =(在您的情况下所有布局权重的总和为14),
然后根据您的比例制作子视图宽度wrap_content和权重属性。
希望这会奏效。答案 2 :(得分:0)
layout_weight不决定小部件大小。在布局中,每个小部件都会测量其大小并需要父布局中的空间。然后父母根据layout_weight的比例为所有孩子分配剩余的空间。因此,在您的情况下,您可以指定layout_width = 0。这样,小部件不需要任何空间,然后父布局可以根据layout_weight分配空间。
答案 3 :(得分:0)
Ralgha的回答是正确的。对于代码,您可以参考下面的代码。
请检查代码:
<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>
希望这会对你有所帮助。