我正在尝试创建一个Android应用程序。我想在应用程序开始时选择方向。但在那之后,我不希望改变方向,无论他们的手机如何定位。我知道我可以把android:screenorientation放在清单文件中并锁定方向,但我真的不想这样做。我想要的是,最初,我会将方向设置为默认方向,让我们说景观。然后,用户将有一次机会更改方向,之后方向将被锁定。如果用户在应用程序启动期间未选择方向,则方向将锁定为默认方向。所以,我只需要知道如何不在方向变化上重新加载活动。我不确定我是否足够好解释我的情况。但是,提前感谢您的帮助。
答案 0 :(得分:1)
为此,首先在清单中声明活动,如下所示:
<activity android:name=".StartActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
这意味着现在,当为此Activity调用设备方向时,而不是Android重新创建它,它将从Activity调用onConfigurationChanged()方法。您现在要做的就是声明该方法:
public void onConfigurationChanged(Configuration newConfig) {
// Do nothing -- if that is what you really want !!
// Check the orientation of the screen if you need to do something
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
了解更多相关信息