具有两个片段的活动在屏幕旋转上显示不同

时间:2016-05-09 12:36:01

标签: android-layout android-fragments

我对片段有一个活动。我不知道如何制作布局,以便它们在纵向方向上是一个在另一个之下,而在横向方向上是另一个。我是否必须制作两个布局并检查“onCreate”方法中的方向并渲染相应的布局?或者我应该以不同的方式设置布局? (就像现在一样,在纵向视图中可以,但在横向视图中它们重叠)。

这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.apps.rucsi.biorhytm.MainActivity">

<fragment android:name="com.apps.rucsi.biorhytm.InputFragment"
    android:id="@+id/inputFragment"
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"/>

<fragment android:name="com.apps.rucsi.biorhytm.OutputFragment"
    android:id="@+id/outputFragment"
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"/>

结果是纵向:enter image description here

在lanscape中他们重叠:enter image description here

1 个答案:

答案 0 :(得分:0)

所以这里发生的事情是,您将顶部片段设置为与父android:layout_alignParentTop="true"的顶部对齐,并将底部片段与父android:layout_alignParentBottom="true"的底部对齐。你只是幸运的肖像适合他们。

你可以做一些事情设置将它添加到第二个片段,告诉它低于第一个片段android:layout_toEndOf="@+id/inputFragment"

或者你可以把它们放到线性布局中。