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

问题描述:

我对片段有一个活动。我不知道如何制作布局,以便在纵向上将它们放在另一个下面,并且在横向上一个接一个。我是否必须制作两种布局,并在“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

所以这里发生了什么,你设置您的顶部片段要与父亲android:layout_alignParentTop="true"的顶部对齐,并且您的底部片段要与第父母的底部android:layout_alignParentBottom="true"。你只是幸运的肖像,他们适合。

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

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

+0

嗯,我把它们放在一个LinearLayout中,我为纵向设置垂直方向,为横向设置水平方向。没关系,但是我必须使用2个布局(例如layout和layout_land)?我无法弄清楚如何在单一布局中制作适合这两种情况的方案。 – Rucsi

+0

你只需要垂直方向。如果你旋转你的手机,“上”的内容也会改变,所以你不需要单独的layout_land来代替这个 – jbarat

+0

是的,但是在横向上我不想要下面的图表,我希望它在表单的右侧。垂直方向将其与横向对齐。如果我错过了一些东西,我很抱歉,我在Android开发中很新。谢谢您的回答! – Rucsi