Batasan pada orientasi dan kemampuan mengubah ukuran diabaikan

Dengan aplikasi Android yang kini berjalan di berbagai perangkat (seperti ponsel, tablet, perangkat foldable, desktop, mobil, dan TV) serta mode jendela di perangkat layar besar (seperti layar terpisah dan mode jendela desktop), developer harus membuat aplikasi Android yang dapat beradaptasi dengan ukuran layar dan jendela apa pun, terlepas dari orientasi perangkat. Paradigma seperti membatasi orientasi dan kemampuan mengubah ukuran terlalu ketat di dunia multiperangkat saat ini.

Mengabaikan batasan orientasi, kemampuan mengubah ukuran, dan rasio aspek

Untuk aplikasi yang menargetkan Android 17 (level API 37) atau yang lebih tinggi, batasan orientasi, kemampuan perubahan ukuran, dan rasio aspek tidak lagi berlaku pada layar yang lebar terkecilnya lebih besar dari 600 dp. Aplikasi mengisi seluruh jendela tampilan, terlepas dari rasio aspek atau orientasi pilihan pengguna, dan pillarbox tidak digunakan.

Android 17 menghapus penonaktifan sementara oleh developer untuk pembatasan orientasi dan perubahan ukuran di perangkat layar besar yang disediakan di Android 16.

Perubahan ini memperkenalkan perilaku platform standar baru. Android beralih ke model yang mengharuskan aplikasi beradaptasi dengan berbagai orientasi, ukuran layar, dan rasio aspek. Pembatasan seperti orientasi tetap atau kemampuan mengubah ukuran yang terbatas menghambat kemampuan adaptasi aplikasi. Buat aplikasi Anda adaptif untuk memberikan pengalaman pengguna terbaik.

Anda juga dapat menguji perilaku ini menggunakan framework kompatibilitas aplikasi dan mengaktifkan flag kompatibilitas UNIVERSAL_RESIZABLE_BY_DEFAULT.

Perubahan umum yang dapat menyebabkan gangguan

Mengabaikan batasan orientasi, kemampuan perubahan ukuran, dan rasio aspek dapat memengaruhi UI aplikasi Anda di beberapa perangkat, terutama elemen yang didesain untuk tata letak kecil yang dikunci dalam orientasi potret. Misalnya, aplikasi mungkin mengalami masalah seperti tata letak yang melebar serta animasi dan komponen di luar layar. Asumsi apa pun yang Anda buat tentang rasio aspek atau orientasi dapat menyebabkan masalah visual pada aplikasi Anda. Pelajari lebih lanjut cara menghindari masalah ini dan meningkatkan perilaku adaptif aplikasi Anda.

Masalah umum pada perangkat foldable lanskap atau untuk penghitungan rasio aspek dalam skenario seperti multi-aplikasi, mode jendela desktop, atau layar terhubung, adalah saat pratinjau kamera tampak direntangkan, diputar, atau dipangkas. Masalah ini sering terjadi di perangkat layar besar dan perangkat foldable karena aplikasi mengasumsikan hubungan tetap antara fitur kamera (seperti rasio aspek dan orientasi sensor) dan fitur perangkat (seperti orientasi perangkat dan orientasi alami). Pelajari lebih lanjut cara mengelola pratinjau kamera.

Mengizinkan rotasi perangkat akan menghasilkan lebih banyak pembuatan ulang aktivitas, yang dapat mengakibatkan hilangnya status pengguna jika tidak dipertahankan dengan benar. Pelajari cara menyimpan status UI dengan benar di Menyimpan status UI.

Detail implementasi

Atribut manifes dan API runtime berikut diabaikan di seluruh perangkat layar besar dalam mode layar penuh dan mode multi-aplikasi:

Nilai berikut untuk screenOrientation, setRequestedOrientation(), dan getRequestedOrientation() akan diabaikan:

  • portrait
  • reversePortrait
  • sensorPortrait
  • userPortrait
  • landscape
  • reverseLandscape
  • sensorLandscape
  • userLandscape

Terkait kemampuan mengubah ukuran layar, android:resizeableActivity="false", android:minAspectRatio dan android:maxAspectRatio tidak berpengaruh.

Pengecualian

Batasan orientasi, kemampuan perubahan ukuran, dan rasio aspek Android 17 tidak berlaku dalam situasi berikut:

  • Game (berdasarkan flag android:appCategory)
  • Pengguna secara eksplisit memilih perilaku default aplikasi di setelan rasio aspek perangkat
  • Layar yang lebar terkecilnya lebih kecil dari sw600dp