簡體   English   中英

Android 最佳實踐:如何讓活動以任何方向開始但不允許改變方向

[英]Android Best Practices: How to let an activity start in any orientation but not allow orientation change

我正在編寫一個 Android 應用程序,它將在手機和 Honeycomb 平板電腦上運行,並且幾乎從一開始就根據操作系統運行不同的活動。 在非蜂窩設備上,我將所有活動都鎖定為縱向以簡化 UI,對於蜂窩設備也是如此,只是它們都鎖定為橫向,再次獲得更好的 UI 和用戶體驗。

我有一些以對話框為主題的活動,例如我編寫的文件瀏覽器,我想在任一設備上使用它,並且讓對話框活動與當前應用程序的方向相同。 因此,如果用戶正在使用手機,對話框將以縱向顯示,他們可以 select 他們的文件,活動將消失,用戶將繼續。 如果他們使用 Honeycomb 設備,對話活動將以橫向顯示,並且適用相同的規則。

但是,我不想讓方向動態改變。 如果文件瀏覽器活動在屏幕上,則不應允許用戶旋轉設備,因為底層活動不支持它。

我正在尋找有關如何完成此任務的建議。

您可以在 AndroidManifest 中的活動上添加android:configChanges="orientation"以通知操作系統您正在處理方向更改。 通常我們會在onConfigurationChanged方法中實現某種處理,但在這種情況下你什么也不做。

只是一個想法,可能會也可能不會:

    WindowManager wm = (WindowManager) activity
        .getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    display.getRotation();
    Surface.setOrientation(display.getDisplayId(), display.getRotation());

看看這是否有效:)

暫無
暫無

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

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