2013-06-29 75 views
3

我正在制作一个应用程序,我想要查看的第一个屏幕是肖像。然后我进入横向设置的下一个活动。设置初始屏幕方向

我面临的问题是,如果我返回到第一个屏幕,它将被设置为风景,显然继承了前一个屏幕的方向。

是否有一种可能的方式将初始屏幕方向设置为已设置的人像,但用户可以继续前进,并在需要时将其更改为横向?

感谢

编辑:解决

谢谢您的建议。我已经解决了这个问题。这有点难以解释,但会尝试我最。

所以我的第一个活动有一个功能,如果手机转向风景,它会显示一个图像,全屏。再次,如果手机是肖像,那么我有一个列表视图。

第二项活动加载一个编辑页面以让我更改该图像。

所以现在如果我按回编辑活动。第一个活动将加载到LANDSCAPE中的列表视图中。这不是我想要的。

因此为了解决这个问题。当第一个活动是横向的时候,我首先禁用了后退按钮,这样用户就无法将自己从视图中移开,而无需将手机转为横向。

我然后移动代码:

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      //Show landscape picture 
      } 
    } 

上我的课的onCreate方法前顶部。

这已经解决了我的问题,所以现在,如果我要回到我在风景中的第一个活动,唯一显示的是风景视图。

我希望所有人都明白:)

再次感谢您的帮助!

+0

满意的问题,但不与答案。没有人知道另一种方式来做到这一点? – thomaus

+0

我正在为完全相同的问题寻找解决方案。那么是不是有一种方法来设置一个活动的初始方向(例如肖像),但不覆盖android:screenOrientation =“user”标签? – thomaus

回答

5

你可以在OnCreate()编程设置屏幕方向 - 方法:

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

恰到好处)super.onCreate的调用(前;.

我希望我能帮助你。

最好的问候, G_J

+0

不幸的是,该视图无限期地设置为肖像。我之前曾用一个计数器试过这个,一旦屏幕已经以纵向打开,允许改变屏幕。当count> 0时,但没有运气。 –

+0

好吧......当count> 0时,你是否尝试将其设置回“ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR”?我想,这可以解决它。 以下是setRequestedOrientation(int screenOrientation) - 方法的可能参数:http://developer.android.com/reference/android/content/pm/ActivityInfo.html#screenOrientation –

2

您可以更改您的应用程序内的每个活动的标签的清单文件使用该个人活动的方向:

android:configChanges="orientation" 

要么

android:screenOrientation="portrait" 

OR

android:screenOrientation="landscape" 

按您的需求

0

谢谢您的建议。我已经解决了这个问题。这有点难以解释,但会尝试我最。

所以我的第一个活动有一个功能,如果手机转向风景,它会显示一个图像,全屏。再次,如果手机是肖像,那么我有一个列表视图。

第二项活动加载一个编辑页面以让我更改该图像。

所以现在如果我按回编辑活动。第一个活动将加载到LANDSCAPE中的列表视图中。这不是我想要的。

因此为了解决这个问题。当第一个活动是横向的时候,我首先禁用了后退按钮,这样用户就无法将自己从视图中移开,而无需将手机转为横向。

我然后移动代码:

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      //Show landscape picture 
      } 
    } 

上我的课的onCreate方法前顶部。

这已经解决了我的问题,所以现在,如果我要回到我在风景中的第一个活动,唯一显示的是风景视图。

我希望是很清晰,供大家了解

再次感谢您的帮助!

1

你可以在OnCreate编程方式设置屏幕方向()方法:

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

只是super.onCreate();.

通话后立即

您也可以在清单中指定的方位像这样的文件

<activity android:name="com.example.project.activity" 
        android:screenOrientation="portrait"/>