Как изменить макет TimePicker Android вручную? - PullRequest
0 голосов
/ 29 января 2020

В принципе, у меня есть TimePicker с 2 кнопками под ним. Я хочу, чтобы они были справа, когда устройство имеет альбомную ориентацию. Он работает с каталогом layour-land, но когда пользователь нажимает на значок клавиатуры (доступен с Oreo) для ввода значений вручную, макет изменяется для встроенного макета с помощью кнопок под средством выбора, а не рядом с ним. Если я вернусь к представлению «часы», они снова окажутся справа. Как я могу изменить компоновку ручного таймера?

Вот мои XML-файлы (не беспокойтесь об атрибуте 'visibility = "away"', он служит для изменения селекторов в списке кликов в код):

Портрет

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:visibility="visible" />

    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:visibility="gone" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp">


        <Button
            android:id="@+id/cancel"
            style="@style/FormValue"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:background="@null"
            android:text="@string/cancel" />

        <Button
            android:id="@+id/set"
            style="@style/FormValue"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:background="@null"
            android:text="@android:string/ok" />

    </LinearLayout>

</LinearLayout>

Пейзаж

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal|center_vertical">

    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:visibility="visible" />

    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:visibility="gone"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp">

        <Button
            android:id="@+id/set"
            style="@style/FormValue"
            android:layout_width="100dip"
            android:layout_height="100dp"
            android:background="@null"
            android:text="@android:string/ok" />

        <Button
            android:id="@+id/cancel"
            style="@style/FormValue"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@null"
            android:text="@string/cancel" />

    </LinearLayout>

</LinearLayout>

Я не нашел никакой информации относительно это где-то в Интернете, может быть, у меня нет правильного термина, когда я его ищу. Спасибо ребята!

...