在相对布局中正确放置按钮?

时间:2014-11-10 21:03:40

标签: android android-layout android-relativelayout

我设计了以下布局http://i61.tinypic.com/33w1oy1.jpg

但在任何设备中看起来都像这样:http://i60.tinypic.com/zvbxiu.png

为什么查询和培训按钮之间存在差距。

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff" >

     <Button
        android:id="@+id/bExit"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:text="@string/Exit" />

    <Button style="?android:attr/borderlessButtonStyle"
        android:id="@+id/bInquiry"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_above="@+id/bContactus   "
        android:layout_alignParentLeft="true"
        android:text="@string/buttonInquiry" />

    <Button style="?android:attr/borderlessButtonStyle"
        android:id="@+id/bContactus "
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_above="@+id/bExit"
        android:layout_alignParentLeft="true"
        android:text="@string/buttonContactUs"
        android:background="#f7f0db" />

    <Button
        android:id="@+id/bServices"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:text="@string/buttonServices" />

    <Button
        android:id="@+id/bTraining"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/bServices"
        android:text="@string/buttonTraining"
        android:background="#f7f0db" />

    <ImageView
        android:id="@+id/imageView1"

        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_above="@+id/bAboutUs"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:contentDescription="@string/fblike"
        android:src="@drawable/dgtklogo554a527" />

    <Button
        android:id="@+id/bAboutUs"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:background="#f7f0db"
        android:layout_height="50dp"
        android:layout_above="@+id/bServices"
        android:layout_alignParentLeft="true"
        android:text="@string/buttonAbtus" />

</RelativeLayout>

请建议对按钮进行哪些更改以避免出现这种情况。

2 个答案:

答案 0 :(得分:2)

使用 LinearLayout 而不是使用 LinearLayout 并将其方向属性设置为垂直android:orientation="vertical",然后逐个添加项目你将实现你的布局。这将是内存效率和快速比较到RelativeLayout,因为RelativeLayout取决于视图和make视图之间的各种关系慢。
感谢。

答案 1 :(得分:1)

如果您决定坚持使用RelativeLayout,问题在于您有两组不相关的控件。现在关系如下:

bExit <- bContactus <- bInquiry

bServices <- bTraining
 ^
 |
bAboutUs <- imageView1

相反它应该是这样的:

bExit <- bContactus <- bInquiry <- bTraining <- bServices <- bAboutUs <- imageView1