我创建了一个内部有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,但也重叠了。
答案 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>