RelativeLayout位置问题

时间:2012-08-01 15:42:33

标签: android android-layout relativelayout

我有layout,其中包含4个水平LinearLayouts,每个ImageButtons内有LinearLayout

现在我想将RelativeLayout转换为toRightOf,因为我需要添加更多元素,我必须使用alignParentTop<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/bugbox_wall_port" > <LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:orientation="vertical" > <Button android:id="@+id/writeNewMsg" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="New" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 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/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 android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="10dp" > <ImageButton android:id="@+id/battleMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/msgbatt" /> <ImageButton android:id="@+id/skynetMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="@drawable/msgnet" /> <ImageButton android:id="@+id/transportMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/msgtrans" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="10dp" > <ImageButton android:id="@+id/expeditionMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/msgexp" /> <ImageButton android:id="@+id/newsMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="@drawable/msgnews" /> <ImageButton android:id="@+id/buildingMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/msgbuild" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="10dp" > <ImageButton android:id="@+id/allMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/msgall" /> <ImageButton android:id="@+id/binMsgs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:background="@drawable/msgbin" /> </LinearLayout> </LinearLayout> </ScrollView> 等。

以下是我用来执行此更改的代码:

RelativeLayout

但我不知道为什么,{{1}}存在问题。

这是一张图片,我用图形解释了哪个是我的问题:

http://img811.imageshack.us/img811/5479/stackes.jpg

这让我疯了。我不知道为什么会这样。我之前使用过RelativesLayout,但它们没有问题。

所以我的问题是:为什么会这样?然后我该如何解决这个错误?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个。我评论了底部的线性布局。如果相对布局按照您希望的方式工作,那么您可以相应地调整其他线条。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:background="@drawable/bugbox_wall_port" >
    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical" >
        <Button
            android:id="@+id/writeNewMsg"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="New" />
        <RelativeLayout
            android:layout_width="fill_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/ic_launcher" />
            <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/ic_launcher"
                android:layout_toRightOf="@id/spyMsgs" />
            <ImageButton
                android:id="@+id/allyMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/ic_launcher"
                android:layout_toRightOf="@id/playerMsgs" />
        </RelativeLayout>
        <!-- <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="10dp" >
            <ImageButton
                android:id="@+id/battleMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/msgbatt" />
            <ImageButton
                android:id="@+id/skynetMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:background="@drawable/msgnet" />
            <ImageButton
                android:id="@+id/transportMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/msgtrans" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="10dp" >
            <ImageButton
                android:id="@+id/expeditionMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/msgexp" />
            <ImageButton
                android:id="@+id/newsMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:background="@drawable/msgnews" />
            <ImageButton
                android:id="@+id/buildingMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/msgbuild" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="10dp" >
            <ImageButton
                android:id="@+id/allMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/msgall" />
            <ImageButton
                android:id="@+id/binMsgs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:background="@drawable/msgbin" />
        </LinearLayout> -->
    </LinearLayout>
</ScrollView>

答案 1 :(得分:0)

解决。我正在以编程方式为视图设置ID,但我没有意识到......