横向模式打破布局

时间:2015-03-26 22:03:23

标签: android android-layout android-xml landscape-portrait

我的应用程序几乎在所有设备中都看起来很完美。但在横向模式下,它会断开并将视图放在彼此顶部。我有Android Studio的GenyMotion插件,我尝试过安装不同类型的设备,但问题仍然存在。

以下是肖像模式的示例:

Portrait

横向模式:

Landscape

.XML文件:

    <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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:background="#FFFFFF">

    <TextView
        android:id="@+id/timerValue"
        android:layout_width="250dp"
        android:layout_height="55dp"
        android:layout_above="@+id/pauseButton"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="37dp"
        android:textSize="50dp"
        android:textColor="#cd0000"
        android:text="@string/timerVal"
        android:textStyle="bold"
        android:background="#FFFFFF"
        android:gravity="center_horizontal" />

    <Button
        android:id="@+id/startButton"
        android:layout_width="105dp"
        android:layout_height="45dp"
        android:text="@string/startButtonLabel"
        android:background="#000000"
        android:textColor="#fffaf0"
        android:textStyle="bold"
        android:textSize="25dp"
        android:layout_marginBottom="196dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="39dp"
        android:layout_marginStart="39dp" />

    <Button
        android:id="@+id/pauseButton"
        android:layout_width="105dp"
        android:layout_height="45dp"
        android:layout_alignBaseline="@+id/startButton"
        android:layout_alignBottom="@+id/startButton"
        android:layout_alignParentRight="true"
        android:layout_marginRight="38dp"
        android:text="@string/pauseButtonLabel"
        android:background="#000000"
        android:textColor="#fffaf0"
        android:textStyle="bold"
        android:textSize="25dp" />

    <TextClock
        android:layout_width="250dp"
        android:layout_height="55dp"
        android:id="@+id/textClock"
        android:textSize="50dp"
        android:layout_marginTop="48dp"
        android:gravity="center_horizontal"
        android:background="#FFFFFF"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="105dp"
        android:layout_height="45dp"
        android:text="RESET"
        android:id="@+id/reset"
        android:layout_marginTop="30dp"
        android:textSize="25dp"
        android:textStyle="bold"
        android:background="#000080"
        android:textColor="#DC143C"
        android:layout_below="@+id/pauseButton"
        android:layout_centerHorizontal="true" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/fbutton"
        android:src="@drawable/fbshare"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:background="#FFFFFF" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

您必须在res中创建另一个目录,并将其命名为layout-land,它与您在多语言值目录中的操作类似。

这意味着对于任何事物都有两种不同的活动:布局文件夹中的肖像和布局 - 土地文件夹中的横向,并且两者具有相同的名称。

创建横向活动后,您可以根据需要进行编辑

答案 1 :(得分:0)

这应该主要完成工作。正如其他人所说,通常最好为景观创建布局。

<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:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".MainActivity"
                android:background="#FFFFFF">

    <TextView
        android:id="@+id/timerValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="50dp"
        android:textColor="#cd0000"
        android:text="00:00:00"
        android:textStyle="bold"
        android:background="#FFFFFF"
        android:gravity="center_horizontal"
        android:layout_above="@+id/startButton"
        android:layout_centerHorizontal="true"/>

    <Button
        android:id="@+id/startButton"
        android:layout_width="105dp"
        android:layout_height="45dp"
        android:text="Start"
        android:background="#000000"
        android:textColor="#fffaf0"
        android:textStyle="bold"
        android:textSize="25dp"
        android:layout_alignTop="@+id/pauseButton"
        android:layout_toLeftOf="@+id/fbutton"
        android:layout_toStartOf="@+id/fbutton"/>

    <Button
        android:id="@+id/pauseButton"
        android:layout_width="105dp"
        android:layout_height="45dp"
        android:text="Pause"
        android:background="#000000"
        android:textColor="#fffaf0"
        android:textStyle="bold"
        android:textSize="25dp"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/fbutton"
        android:layout_toEndOf="@+id/fbutton"/>

    <TextClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textClock"
        android:textSize="50dp"
        android:gravity="center_horizontal"
        android:background="#FFFFFF"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RESET"
        android:id="@+id/reset"
        android:textSize="25dp"
        android:textStyle="bold"
        android:background="#000080"
        android:textColor="#DC143C"
        android:layout_above="@id/fbutton"
        android:layout_below="@+id/startButton"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="49dp"/>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/fbutton"
        android:src="@drawable/fbshare"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:background="#FFFFFF"/>

</RelativeLayout>