时间:2015-06-24 17:55:58

标签: android xml android-layout

我创建了一个内部有3个布局的相对布局。 第一个线性布局,动态添加textView 第二个表格布局与动态创建表格 第三个线性布局,带有动态创建的href(网络链接)

但这三个布局是重叠的,这是我的xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<LinearLayout
    android:id="@+id/layoutHome"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
</LinearLayout>

<TableLayout
    android:id="@+id/table_main"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
</TableLayout>

<LinearLayout
    android:id="@+id/layoutWSMethods"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
</LinearLayout>

</RelativeLayout>

我尝试使用FrameLayout更改RelativeLayout,但也重叠了。

3 个答案:

答案 0 :(得分:1)

使用垂直或水平方向的Linearlayout。

Framelayout旨在按照添加顺序重叠视图。

对于RelativeLayout,如果您不在特定视图的下方或上方排列视图,则它是相同的。顾名思义,你以相对的方式安排它们。

答案 1 :(得分:1)

因此,要解决此问题,您需要使用RelativeLayout的属性。例如,如果您想将它们全部对齐并在右侧对齐,则代码将如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/layoutHome"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentRight="true">
    </LinearLayout>

    <TableLayout
        android:id="@+id/table_main"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"
        android:layout_below="@id/layoutHome">
    </TableLayout>

    <LinearLayout
        android:id="@+id/layoutWSMethods"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:layout_alignParentRight="true"
        android:layout_below="@id/table_main">
    </LinearLayout>

</RelativeLayout>

属性android:layout_alignParentRight="true"android:layout_below="@id/layoutID"只有两个。一个好的起点就在这里:https://developer.android.com/guide/topics/ui/layout/relative.html

答案 2 :(得分:0)

从第二个布局开始设置每个布局的属性android:layout_below,以便每个布局都放在另一个布局之下并且不从顶部开始

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/layoutHome"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    </LinearLayout>

    <TableLayout
        android:id="@+id/table_main"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/layoutHome" >
    </TableLayout>

    <LinearLayout
        android:id="@+id/layoutWSMethods"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_below="@+id/table_main" >
    </LinearLayout>

    </RelativeLayout>