2013-03-30 91 views
55

我正在開發一個Android應用程序,當用戶旋轉設備時,其方向我不想更改爲橫向模式。此外,我希望鎖定的方向在平板電腦上成爲手機肖像模式和橫向模式。這可以實現嗎,如果是的話,怎麼樣?謝謝。如何將android應用程序的方向鎖定爲肖像模式?

+1

@CommonsWare:我的應用程序有長列表的菜單,這是更有效率穿越potrait模式在手機上。 –

+3

然後提出更好的GUI設計,尊重用戶在任何方向使用他們的設備的能力。 – CommonsWare

回答

102

您只需在AndroidManifest.xml文件中的activity元素內定義以下屬性。它會將您的方向限制爲肖像。

機器人:screenOrientation = 「肖像」

例子:

 <activity 
      android:name="com.example.demo_spinner.MainActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="portrait" > 
     </activity> 

Additionaly,如下面愛德華·盧卡的評論,你也可以使用screenOrientation="sensorPortrait"如果要啓用旋轉180度。

+15

或者'sensorPortrait'如果你想讓用戶能夠將屏幕旋轉180度:) –

32

您必須在AndroidManifest.xml中添加android:screenOrientation="portrait"指令。這是在您的<activity>標籤中完成的。

此外,Android開發者指南指出:

[...]你也應該明確地聲明,您的應用需要 縱向或橫向與 元素。例如,<uses-feature android:name="android.hardware.screen.portrait" />

+6

爲好的做法報價+1,因爲這應該是被接受的答案,因爲它是正確的,並被張貼第一... –

+5

是否有一個全球性的方式? –

2
<activity android:name=".yourActivity" 
      android:screenOrientation="portrait" ... /> 

增加主要活動,並添加

android:configChanges="keyboardHidden" 

讓你的程序,當鍵盤被稱爲改變模式。

9

這可能是..你必須確定它是由編程平板電腦或手機...

if(isTablet) 
{ 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
}else 
{ 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
} 
13

我可以看到你接受不完全解決你的問題的答案:

android:screenOrientation="portrait" 

這會強制您的應用在手機和平​​板電腦上都是肖像。

您可以通過使用

android:screenOrientation="nosensor" 

這將導致迫使你的應用肖像大多數手機上,手機和平板電腦上的景觀都被迫在設備的「首選」方向的應用程序。 有很多手機鍵盤設計爲橫向模式。強制您的應用使用肖像可以使其在這類設備上幾乎無法使用。 Android最近也正在遷移到其他類型的設備。最好讓設備選擇首選的方向。

+0

我不知道'nosensor'點之前,好的! – AbdelHady

1

將屏幕方向設置爲活動標籤下的清單文件中的縱向。

相關問題