簡體   English   中英

需要方向鎖定為橫向,但旋轉為縱向時仍需要通知

[英]Need orientation locked to landscape, but still need notification when rotated to portrait

我正在使用一個Android應用程序,該應用程序要求將屏幕鎖定為橫向,因為UI僅針對橫向而設計。 但是,屏幕上發生的事情仍然需要知道何時將設備旋轉到縱向模式。 如果我將以下內容放入AndroidManifest.xml中:

android:screenOrientation="landscape"

這樣可以防止觸發屏幕方向更改通知(onConfigurationChanged)。 但是,如果將screenOrientation設置為“ sensor”,則OS會自動旋轉UI,而無法阻止UI:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    //Can't override newConfig and force landscape? wtf?
    super.onConfigurationChanged(newConfig);
}

我只是以錯誤的方式來對待嗎? 如何保持屏幕風景(防止操作系統自動更改方向),但在更改方向時仍會收到通知?

我認為您想要的是:

<activity ...
    android:configChanges="orientation"
    ...

根據Android清單文件的清單<activity>元素:

android:configChanges

列出活動將自行處理的配置更改。 在運行時發生配置更改時,默認情況下將關閉活動並重新啟動活動,但是聲明具有此屬性的配置將阻止活動重新啟動。 而是,活動保持運行狀態,並調用其onConfigurationChanged()方法。

...

值:“方向”

說明:屏幕方向已更改-用戶旋轉了設備。

暫無
暫無

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

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