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

时间:2017-11-08 09:10:39

标签: android android-layout

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

考虑横向模式:

enter image description here

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

enter image description here

我目前的代码是:

bool isInCircle(int x, int y) {
    if (circleRadius >= getPointDistance(x, y)) {
        //it's inside the circle (we assumed on the edge is inside)
        return true;
    } else {
        //given point is outside of the circle
        return false;
    }
}

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

另一种方法是什么?是否可以在屏幕模式转换时以编程方式更改布局的方向?

2 个答案:

答案 0 :(得分:5)

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

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

快乐的编码!!

答案 1 :(得分:0)

您可以创建包含屏幕横向布局的 layout-land 目录。在这种情况下,您可以将原始布局放在 layout-land 目录中,并将orientation:vertical布局放在布局文件夹中。

The Android documentation has information on how to support different screens