Мое приложение прекрасно выглядит в настроении Портрет практически во всех устройствах. Но в ландшафтном режиме он разбивается и помещает «Взгляды сверху» друг на друга. У меня есть плагин GenyMotion с Android Studio, и я попытался установить различные типы устройств, однако проблемы остаются такими же.Ландшафтный режим разрывает макет
Вот пример портретном режиме:
Ландшафтный режим:
.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>
Потому что это макет, который вы указали. Установка поля 30dp над чем-то означает, что на нем всегда будет 30dp. Попробуйте создать ландшафтный макет и поместить его в каталог 'layout-land', который используется, когда устройство находится в ландшафтном режиме. – alanv