В документации 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 позволит добиться того, что я хочу для портретного режима, но это портит в ландшафтном режиме, и наоборот.

Какой альтернативный путь к этому? Можно ли программно изменять ориентацию макета всякий раз, когда переключается режим экрана?

Ответы на вопрос(2)

Решение Вопроса

поэтому сделайте следующее:

int orientation = this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
 //code for portrait mode
} else {
//code for landscape mode
}

Удачного кодирования!

 Hemant Parmar08 нояб. 2017 г., 10:25
@NewbieCoder Добро пожаловать, примите мои ответы, спасибо.
 NewbieCoder08 нояб. 2017 г., 10:19
Большое спасибо! Краткое и простое решение!

планировка-земля каталог, который содержит ландшафтные макеты ваших экранов. В этом случае вы бы поместили оригинальный макет внутрипланировка-земля каталог и местоorientation:vertical макет внутри вашегорасположение папка.

В документации Android есть информация о том, как поддерживать разные экраны

Ваш ответ на вопрос