簡體   English   中英

即使將方向設置為縱向,屏幕仍然可以旋轉

[英]Screen still can rotate even if orientation is set to Portrait

我知道磁貼似乎非常令人困惑,但是,是的,它發生在我的應用程序中。 好的,這是故事。

以下是清單中的關鍵設置:

android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

在Activity.java中,我還重寫了onConfigurationChanged(Configuration config) ,它將打印出當前方向。

這是最有趣的部分。 我使用Intent從風景中的應用程序中啟動一個可旋轉的應用程序,例如Gallery(假設它可以旋轉)。 將手機放在橫向,然后按返回鍵。 新啟動的活動(在本例中為Gallery)將退出,我的應用程序將重新啟動。 從理論上講,由於我將screenOrientation設置為縱向,所以我的應用程序應該以縱向顯示。 但是,實際上,我的應用程序僅停留在縱向狀態1秒鍾,然后跳至橫向,然后再次跳回縱向。

我啟動一個線程打印出requestedOrientation我的申請后onRestart被調用。 而且我發現輸出始終為“ 1”,即“肖像”。 但是, onConfigurationChanged的輸出給出了我當前的風景方向!

所以,我很困惑。 怎么會這樣 有人可以給我一些建議嗎?

可能是您在活動中使用屏幕方向。 但是另一個活動將是輪換。 在下面的示例中,ActivityA的方向不會改變,但ActivityB會旋轉。 如果您在應用代碼中編寫了android:screenOrientation =“ portrait”,但未在活動中提及任何內容。 它沒有任何作用。 因此,請在活動中提及screenOrientation。

<activity
   android:name=".ActivityA"
   android:screenOrientation="portrait">
</activity>
<activity
   android:name=".ActivityB">
</activity>

您是否正在使用android:screenOrientation="portrait" android:configChanges="orientation|screenSize|keyboardHidden"

在您的應用程序內部或處於活動狀態

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM