В документации Android есть информация о том, как поддерживать разные экраны
я есть средство выбора даты / времени, которое я хочу, чтобы они реагировали в соответствии с его расположением.
Рассмотрим в ландшафтном режиме:
Это идеальное размещение того, что я хочу. Однако, если я переключаю его в портретный режим, я получаю что-то вроде ниже: часть времени отсутствует.
Мой текущий код:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/DarkGrey" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<DatePicker
android:id="@+id/custom_datePicker"
android:calendarViewShown="false"
android:layout_height="170dp"
android:layout_width="wrap_content"
android:layout_marginTop="-10dp"
android:layout_marginBottom="-10dp" />
<TimePicker
android:id="@+id/custom_timePicker"
android:layout_height="170dp"
android:layout_width="wrap_content"
android:layout_marginTop="-10dp"
android:layout_marginBottom="-10dp" />
</LinearLayout>
<Button
android:id="@+id/btnDone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Done"
style="@style/Widget.AppCompat.Button.Colored"
android:theme="@style/General.Button">
</Button>
</LinearLayout>
Изменение ориентации внутреннего LinearLayout на Vertical позволит добиться того, что я хочу для портретного режима, но это портит в ландшафтном режиме, и наоборот.
Какой альтернативный путь к этому? Можно ли программно изменять ориентацию макета всякий раз, когда переключается режим экрана?