我可以通过在onCreate
中使用setRequestedOrientation
来完美地以编程方式管理方向变化。
一切都很好,直到我插入HDMI电缆。在此之后,平板电脑"希望"处于横向模式。因此,当我打开一个活动时,它首先显示在"横向"中,然后紧接着以"纵向"显示,(因为我在onCreate
中调用variable=ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
setRequestedOrientation(variable_with_orientation_desired_by_the_user)
正如您"看到"的那样,我的应用程序在用户打开的每个活动中不断旋转;
为活动设置了定向,则此问题将部分消失,因为清单中的方向与用户选择的方向相同。如果它们不同,则相同的行为将再次开始。
我试过这个,但没有成功:
@Override
public void onCreate(final Bundle saved)
{
setRequestedOrientation(ScreenOrientation);
super.onCreate(icicle);
}
那么,有没有办法告诉安卓它必须在创建我的活动之前创建我的活动?(但它不能是明显的)
我通过在清单文件中将 screenOrientation 设置为"后面"来解决它:
android:screenOrientation="behind"
我在清单中使用此声明解决了它:
android:screenOrientation="locked"
在清单中声明的与此问题相关的每个活动。
并继续以编程方式使用setRequestedOrientation()
来定义onCreate()
方法中的横向还是纵向,
希望对您有所帮助!