Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在另一个类中未调用“OnConfiguration Changed”_Android - Fatal编程技术网

Android 在另一个类中未调用“OnConfiguration Changed”

Android 在另一个类中未调用“OnConfiguration Changed”,android,Android,我有一个相对的布局,几乎覆盖了整个设备屏幕。当我改变手机的方向时,相对的布局宽度变成了它的高度,反之亦然。我尝试在另一个类中实现onConfigurationChanged它不能在主活动中手动更改其宽度和高度,但没有调用它。以下是实现: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newCo

我有一个相对的布局,几乎覆盖了整个设备屏幕。当我改变手机的方向时,相对的布局宽度变成了它的高度,反之亦然。我尝试在另一个类中实现onConfigurationChanged它不能在主活动中手动更改其宽度和高度,但没有调用它。以下是实现:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
       // I'd change its width and height here...
    } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
       // ... and here.
    }

}
我还将其放在manifest.xml文件中:

<activity
        android:name="br.com.dialogscreator.MySecondActivity"
        android:configChanges="orientation|keyboardHidden|screenSize" >
</activity>
我遗漏了什么吗?以下是我的相对布局发生的情况:

现在谢谢你

根据的提示,我在mainActivity中创建了一个标志,以了解每个类中的屏幕方向。请看下面我是如何做到这一点的:

public static boolean isScreenPortrait;

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        isScreenPortrait = true;
    } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        isScreenPortrait = false;
    }
}
然后,当我需要时,我可以从另一个类调用标志,例如:

if (MainActivity.isPortrait) { // Do what you want when the screen orientation is portrait.

OnConfiguration Changed仅在当前可见的活动上被调用。更好的方法是使用SharedReferences存储设备方向状态。静态变量可能并不总是按照您在Android活动中期望的方式工作。