如何使用onConfigurationChanged()以纵向和横向模式提供相同的布局?

时间:2012-02-29 15:34:14

标签: android screen-orientation

欢迎

我必须强制该应用仅在纵向模式下工作,但我需要知道用户何时将手机移至横向模式。为什么?因为我正在显示带有纹理图像的opengl视图,当用户将手机位置更改为横向模式时,我必须旋转多边形而不重置活动。然后我必须在清单上强制执行纵向模式,因为我不希望再次调用我的onCreate方法。

我正在尝试使用这个方法:android:configChanges =“orientation”这会停止重新创建活动,然后覆盖onConfigurationChange()方法。当方向发生变化时,将调用该方法,然后我将根据需要更改图像。

问题在于,当我改变手机的方向时,我的布局也在变化,我不想要那个,我想在纵向和横向模式下给出相同的布局,并且在我实现那个之后将生成旋转,旋转不是问题,因为我知道如何做。

如何使用onConfigurationChange()以纵向和横向模式提供相同的布局?

3 个答案:

答案 0 :(得分:0)

问题是这些会改变对象在布局中出现的方向或分布。

您需要添加文件AndroidManifest.xml

中的活动属性

<强>机器人:screenOrientation = “纵向”

此操作不再允许用户在旋转手机时旋转屏幕。

答案 1 :(得分:0)

您可以根据需要在

下创建景观布局
res/layout-land/my_layout.xml

答案 2 :(得分:0)

好吧,如果我猜对了,你需要做两件事。这样,一旦在OnCreate方法中设置的布局在方向上没有改变,一个布局就足够了

  1. 在活动代码中添加一个您想要定位的属性,如下所示

        android:configChanges="orientation|keyboardHidden"
    
  2. 在活动中添加以下功能而不对此功能进行任何更改在配置更改中不执行任何操作

    public void onConfigurationChanged(Configuration newConfig){             super.onConfigurationChanged(NEWCONFIG);
    }