我正在创建一个应用,我要查看的第一个屏幕是Portrait。然后我转到下一个景观设置的活动。
我面临的问题是,如果我返回第一个屏幕,它将被设置为横向,显然继承了上一个屏幕的方向。
是否有可能将初始屏幕方向设置为已设置的纵向,但用户可以在需要时将其更改为横向?
谢谢
编辑:已解决
感谢您的建议。我已经克服了这个问题。这有点难以解释,但会尽我所能。
因此,我的第一项活动有一项功能,即如果手机转为横向,它将显示全屏图像。再次,如果手机是纵向,纵向视图,我有一个列表视图。
第二个活动加载一个编辑页面,让我更改该图像。
现在如果我按回编辑器活动。第一个活动将加载到LANDSCAPE中的列表视图中。这不是我想要的。
因此,为了解决这个问题。当第一个活动是横向时,我首先禁用了后退按钮,因此用户无法在不将手机转为横向的情况下将自己从视图中移除。然后我移动了代码:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//Show landscape picture
}
}
在onCreate方法之前到我班级的顶部。
这已经解决了我的问题所以现在,如果我要在风景中回到我的第一个活动,唯一可以展示的是景观视图。
我希望这一点足以让所有人理解:)
再次感谢您的帮助!
答案 0 :(得分:5)
您可以在onCreate()方法中以编程方式设置屏幕方向:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
就在调用super.onCreate();。
之前我希望,我可以帮助你。
祝你好运, G_J
答案 1 :(得分:2)
您可以在每个活动标记内的应用程序清单文件中使用此方法更改单个活动的方向:
android:configChanges="orientation"
android:screenOrientation="portrait"
或强>
android:screenOrientation="landscape"
根据您的需要
答案 2 :(得分:1)
您可以在onCreate()方法中以编程方式设置屏幕方向:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在super.onCreate();.
OR
您也可以像这样
指定清单文件中的方向<activity android:name="com.example.project.activity"
android:screenOrientation="portrait"/>
答案 3 :(得分:0)
感谢您的建议。我已经克服了这个问题。这有点难以解释,但会尽我所能。
因此,我的第一项活动有一项功能,即如果手机转为横向,它将显示全屏图像。再次,如果手机是纵向,纵向视图,我有一个列表视图。
第二个活动加载一个编辑页面,让我更改该图像。
现在如果我按回编辑器活动。第一个活动将加载到LANDSCAPE中的列表视图中。这不是我想要的。
因此,为了解决这个问题。当第一个活动是横向时,我首先禁用了后退按钮,因此用户无法在不将手机转为横向的情况下将自己从视图中移除。然后我移动了代码:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//Show landscape picture
}
}
在onCreate方法之前到我班级的顶部。
这已经解决了我的问题所以现在,如果我要在风景中回到我的第一个活动,唯一可以展示的是景观视图。
我希望这一点足以让所有人理解
再次感谢您的帮助!