我有一个内部有3或4个视图(Buttons和ImageButtons)的LinearLayout,我希望它们都具有相同的大小以完全适合布局,如下图所示 同样的事情必须在水平和垂直方向完成。
LinearLayout的xml是这样的:
<LinearLayout
android:id="@+id/discover_right_action_bar"
android:layout_width="64dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_below="@id/top_navi_bar"
android:background="@color/smart_dark_grey"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="5dp"
android:paddingTop="5dp" >
<ImageButton
android:id="@+id/home_ib_friend"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="center"
android:src="@drawable/ic_action_select_all" />
<ImageButton
android:id="@+id/home_ib_camera"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="center"
android:src="@drawable/ic_action_camera" />
<ImageButton
android:id="@+id/ib_prof_mon_meetings"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="centerInside"
android:src="@drawable/clock" />
</LinearLayout>
现在我只能在dp中手动设置或调整大小,或者将其设置为wrap_content,而不是在布局的开头和结尾处有空格。
我尝试过layout_weight属性,但我不知道如何使用它。
我也尝试过获取布局的实际大小(通过ViewTreeObserver)并将大小设置为内部子项,但它不起作用,因为我无法获得布局的真实尺寸。
答案 0 :(得分:3)
如果是垂直的
<LinearLayout
android:id="@+id/discover_right_action_bar"
android:layout_width="64dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:weightSum="3"
android:layout_below="@id/top_navi_bar"
android:background="@color/smart_dark_grey"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="5dp"
android:paddingTop="5dp" >
<ImageButton
android:id="@+id/home_ib_friend"
android:layout_width="60dp"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="center"
android:src="@drawable/ic_action_select_all" />
<ImageButton
android:id="@+id/home_ib_camera"
android:layout_width="60dp"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="center"
android:src="@drawable/ic_action_camera" />
<ImageButton
android:id="@+id/ib_prof_mon_meetings"
android:layout_width="60dp"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="centerInside"
android:src="@drawable/clock" />
如果是横向的:
<LinearLayout
android:id="@+id/discover_right_action_bar"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_alignParentRight="true"
android:weightSum="3"
android:layout_below="@id/top_navi_bar"
android:background="@color/smart_dark_grey"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingTop="5dp" >
<ImageButton
android:id="@+id/home_ib_friend"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="center"
android:src="@drawable/ic_action_select_all" />
<ImageButton
android:id="@+id/home_ib_camera"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="center"
android:src="@drawable/ic_action_camera" />
<ImageButton
android:id="@+id/ib_prof_mon_meetings"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:saveEnabled="false"
android:scaleType="centerInside"
android:src="@drawable/clock" />
答案 1 :(得分:0)
我解决了我的问题:上面的解决方案正在运行但我删除了weightSum属性,如果您不知道有多少子视图,它就可以工作。它们的大小将在动态和自动调整,以适应整个父母布局。