我正在尝试在布局底部显示4个ImageButtons。我只能得到3个ImageButtons。第四个ImageButton不可见。这是我的代码。
我使用Relative Layout来显示应用程序。
<ImageButton
android:id="@+id/Button1"
android:layout_weight="1.0"
android:layout_gravity="bottom"
android:layout_alignParentBottom="true"
android:longClickable="true"
android:layout_width="wrap_content"
android:layout_height="75sp"
android:background="@android:color/transparent"
android:src="@drawable/imagebutton2"/>
<ImageButton
android:id="@+id/Button2"
android:layout_gravity="bottom"
android:layout_toRightOf="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="75sp"
android:background="@android:color/transparent"
android:src="@drawable/imagebutton1"
android:layout_weight="1.0"
android:layout_marginLeft="2dp"
android:longClickable="true"/>
<ImageButton
android:id="@+id/Button3"
android:layout_gravity="bottom"
android:layout_toRightOf="@+id/Button2"
android:layout_height="75sp"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:background="@android:color/transparent"
android:src="@drawable/imagebutton1"
android:layout_marginLeft="2dp"
android:longClickable="true"/>
<ImageButton
android:id="@+id/Button4"
android:layout_gravity="bottom"
android:layout_height="75sp"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:background="@android:color/transparent"
android:src="@drawable/imagebutton1"
android:layout_marginLeft="2dp"
android:longClickable="true"
android:layout_alignParentRight="true"/>
答案 0 :(得分:1)
将其放入带有权重的LinearLayout
中,并将此LinearLayout
与父母的底部对齐,如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true" >
<ImageButton
android:id="@+id/ib1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageButton
android:id="@+id/ib2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageButton
android:id="@+id/ib3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageButton
android:id="@+id/ib4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
请注意,此方法会稍微降低性能。
答案 1 :(得分:0)
如果您想继续使用RelativeLayout作为父布局,首先需要从ImageButton属性中删除它:
android:layout_weight="1.0"
它在LinearLayout中使用,Lint应该给你一个警告(RelativeLayout中的布局参数无效)。
如果您希望4个按钮显示在屏幕底部,则需要包含
android:layout_alignParentBottom="true"
在所有4个ImageButtons中,我尝试了你提供的xml,只有第一个按钮显示在底部。
最后但并非最不重要的是,如果你希望你的按钮具有相同的尺寸以具有一定的设计一致性,我建议将它们放在水平的LinearLayout中
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
并使用
配置ImageButtonsandroid:layout_width="0dp"
android:layout_weight="1.0"
然后在RelativeLayout中包含LinearLayout。
另一件事:因为你正在使用
android:layout_width="wrap_content"
对于你的ImageButtons,你需要确保图像不是太宽,否则你的某些按钮可能不会显示在屏幕上,因为第一个按钮占用太多空间,留下最后一个(s)在屏幕右侧。
另一方面,我希望你不要试图制作iOS风格的低标签栏,这在Android中是不受欢迎的,更多信息here ......
有一个好的!
答案 2 :(得分:0)
在最后一张ImageButton中你还没有:
android:layout_toRightOf="@+id/Button3"
如果你想让它在底部,你将需要这个。
我还建议你删除一些代码:
android:layout_gravity="bottom"
android:layout_weight="1.0"
这仅适用于FrameLayout
或LinearLayout
。
如果您想确定每个ImageButton位于屏幕底部,请使用您用于第一个按钮的内容:
android:layout_alignParentBottom="true"
答案 3 :(得分:0)
就像有些人说的那样,在最后一个按钮中,你没有android:layout_toRightOf = "@id/Button3"
所以它将位于布局的顶部。
我通常做的其他方式是:
android:layout_toRightOf = "@id/Button1"
android:layout_alignbottom = @id/Button1"
它将与button1的底部对齐。我这样做是因为有时这个按钮与另一个按钮不对齐,取决于布局。