Para alterar de acordo com o modo paisagem / retrato

Eu tenho um selecionador de data / hora que desejo que eles reajam de acordo com seu layout.

Considere no modo paisagem:

Este é um posicionamento perfeito do que eu quero que seja. No entanto, se eu passar para o modo retrato, recebo algo como abaixo: parte do tempo está faltando.

Meu código atual é:

<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>

Alterar a orientação do LinearLayout interno para Vertical alcançaria o que eu quero no modo retrato, mas isso atrapalha durante o modo paisagem, vice-versa.

O que é uma maneira alternativa para isso? É possível alterar a orientação do layout programaticamente sempre que o modo de tela muda?

questionAnswers(2)

yourAnswerToTheQuestion