XML很疯狂。它没有显示元素的真实位置

时间:2012-07-31 21:52:40

标签: android xml android-layout relativelayout

我遇到布局问题。我有这个结构:

<ScrollView>
    <LinarLayout>
        <Button/>
        <RelativeLayout>
            <ImageButton/>
            <ImageButton/>
            <ImageButton/>
        </RelativeLayout>
    </LinarLayout>
</ScrollView>

我希望三个ImageButton居中,另一个紧挨着另一个:

IMG1   IMG2   IMG3

为此,我使用RelativeLayout将元素集中在android:gravity="center"内,并使用android:layout_toRightOf="@+id/element"android:layout_toLeftOf="@+id/element"按照我想要的方式对元素进行排序

当我在GraphicalLayout选项上查看结果时,它显示了我想要的内容(我从未遇到过此视图的问题,始终显示我写的元素在XML文件上)然后我编译并执行,它都是无序的。我已经尝试了很多不同的方式来订购元素,但它正在做它想要的东西......这是我在近两年的发展中第一次发生这种情况。

我也关闭了Eclipse,但没有任何改变。

编辑以添加信息

我希望元素是这样的:

IMG1 IMG2 IMG3

在GraphicalLayout中,一切正常,但在模拟器中,三个IMGS重叠。

这是完整的代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bugbox_wall_port" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <Button
            android:id="@+id/writeNewMsg"
            android:layout_margin="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="New" />
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="10dp" >
            <ImageButton
                android:id="@+id/spyMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/msgspy" />
            <ImageButton
                android:id="@+id/playerMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:background="@drawable/msgplyr"
                android:layout_toRightOf="@+id/spyMsgs" />
            <ImageButton
                android:id="@+id/allyMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/msgally"
                android:layout_toRightOf="@+id/playerMsgs" />
        </RelativeLayout>
    </LinearLayout>
</ScrollView>

我不知道如何解决它。让我疯了这个布局有什么问题?为什么元素没有订购?我怎么能像往常一样解决它并订购元素?

有人可以帮助我吗?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

小概念:

如何使用android:src代替android:background

答案 1 :(得分:0)

也许这就是你要找的东西:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <Button
            android:id="@+id/writeNewMsg"
            android:layout_margin="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="New" />
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:padding="10dp" >
            <ImageButton
                android:id="@+id/spyMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/icon"/>
            <ImageButton
                android:id="@+id/playerMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"                
                android:background="@drawable/icon"
                android:layout_toRightOf="@id/spyMsgs" />
            <ImageButton
                android:id="@+id/allyMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/icon"
                android:layout_toRightOf="@id/playerMsgs" />
         </RelativeLayout>
    </LinearLayout>
</ScrollView>

enter image description here