我有一个相对布局,几乎覆盖整个设备屏幕。当我改变我的手机方向时,相对布局宽度变为其高度,反之亦然。我尝试在另一个类中实现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>
我错过了什么吗?这是我的相对布局发生了什么的图像:
谢谢你!
答案 0 :(得分:0)
通过Tenfour04的提示,我在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.