2013-06-29 106 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"/>