相应地更改为横向/纵向模式

New*_*der 1 android android-layout

我有一个日期/时间选择器,我希望他们根据其布局做出反应.

考虑横向模式:

在此输入图像描述

这是我想要的完美位置.但是,如果我把它转到肖像模式,我会得到类似下面的内容:部分时间丢失了.

在此输入图像描述

我目前的代码是:

<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>
Run Code Online (Sandbox Code Playgroud)

将内部LinearLayout的方向更改为Vertical将实现我想要的纵向模式,但它在横向模式下会混乱,反之亦然.

有什么替代方法呢?是否可以在屏幕模式转换时以编程方式更改布局的方向?

Hem*_*mar 5

当屏幕方向改变而不是重新创建活动时,请执行以下操作:

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

快乐的编码!!