如何在另一个布局中添加布局?

时间:2012-02-16 13:50:34

标签: android android-layout relativelayout

我需要在一个布局中保存我的每个视图,以便我可以一次性移动它们...但是当我试图将它们全部放在应该在另一个主要布局中的布局中时,它们是无法看到的。我做错了什么?

我发现无法看到名为leftLayout的布局。我制作了不同颜色的布局,它向我展示了主要的布局,称为菜单。我尝试了可见性,但它也不起作用。

我的设计页面是这样的:

enter image description here

应该看起来像这样,但是当我编译时我只看到白色窗口......

这是我的Xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" >

<RelativeLayout
    android:id="@+id/leftLayout"
    android:addStatesFromChildren="true"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginLeft="70dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/leftMenu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:enabled="true"
        android:text="Left Menu"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

 <ListView
        android:id="@+id/list"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:layout_marginTop="70dp"
        android:enabled="true" >
    </ListView>

</RelativeLayout>

</RelativeLayout>

解决了! 我发现我只是在java代码中犯了错误,同时设置了保证金。所以这里的代码没问题。

3 个答案:

答案 0 :(得分:0)

您正在使用相对布局,但尚未指定子视图相对于彼此的位置。

在相对布局中,您必须指定此内容,请在此处查看:http://developer.android.com/resources/tutorials/views/hello-relativelayout.html

答案 1 :(得分:0)

在相对布局中,您始终需要指定每个孩子相对于父母或孩子之间的位置。由于您已指定布局,因此所有布局将被复制到另一个布局。您可以使用子项对齐选项,如“ABOVE”,“BELOW”w.r.t到其他布局。 以下代码看起来像你想要的,

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/menu" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFFFFF" 
    android:orientation="vertical" > 

<RelativeLayout 
    android:id="@+id/leftLayout" 
    android:addStatesFromChildren="true" 
    android:layout_width="100dp" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"
    android:layout_alignleft="@+id/menu" > 

<TextView 
    android:id="@+id/leftMenu" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:enabled="true" 
    android:text="Left Menu" 
    android:layout_weight="0"
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="#000000" /> 

<ListView 
    android:id="@+id/list"
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:enabled="true"
    android:layout_marginTop="50dp"
    android:layout_weight="1"
    android:layout_below="@+id/leftMenu" > 
</ListView> 

</RelativeLayout>
</RelativeLayout>

答案 2 :(得分:0)

您是否尝试使用LinearLayouts?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/menu"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF">

    <LinearLayout
        android:id="@+id/leftLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="70dp"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/leftMenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:enabled="true"
            android:text="Left Menu"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#000000" />

        <ListView
            android:id="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="70dp"
            android:enabled="true" >
        </ListView>
    </LinearLayout>

</LinearLayout>