Dengan aplikasi Android yang kini berjalan di berbagai perangkat (seperti ponsel, tablet, perangkat foldable, desktop, mobil, dan TV) dan mode tampilan jendela di layar besar (seperti tampilan layar terpisah dan tampilan jendela desktop), developer harus membuat aplikasi Android yang beradaptasi dengan ukuran layar dan jendela apa pun, terlepas dari orientasi perangkat. Paradigma seperti membatasi orientasi dan kemampuan mengubah ukuran terlalu membatasi di dunia multiperangkat saat ini.
Mengabaikan batasan orientasi, kemampuan mengubah ukuran, dan rasio aspek
Untuk aplikasi yang menargetkan Android 17 atau yang lebih tinggi, pembatasan orientasi, 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 tidak menggunakan tampilan lebar.
Android 17 menghapus penonaktifan sementara developer untuk pembatasan orientasi dan perubahan ukuran pada 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. Batasan 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 dengan menggunakan framework kompatibilitas aplikasi
dan mengaktifkan tanda kompatibilitas UNIVERSAL_RESIZABLE_BY_DEFAULT.
Perubahan umum yang dapat menyebabkan gangguan
Mengabaikan batasan orientasi, pengubahan ukuran, dan rasio aspek dapat memengaruhi UI aplikasi Anda di beberapa perangkat, terutama elemen yang didesain untuk tata letak kecil yang terkunci dalam orientasi potret. Misalnya, aplikasi mungkin mengalami masalah seperti tata letak yang meregang dan animasi serta komponen di luar layar. Setiap asumsi 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 perhitungan rasio aspek dalam skenario seperti multi-aplikasi, 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 pembuatan ulang aktivitas yang lebih banyak, 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 multi-aplikasi:
screenOrientationresizableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
Nilai berikut untuk screenOrientation, setRequestedOrientation() dan
getRequestedOrientation() akan diabaikan:
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
Terkait pengubahan ukuran tampilan, android:resizeableActivity="false",
android:minAspectRatio, dan android:maxAspectRatio tidak berpengaruh.
Pengecualian
Batasan orientasi, perubahan ukuran, dan rasio aspek Android 17 tidak berlaku dalam situasi berikut:
- Game (berdasarkan bendera
android:appCategory) - Pengguna secara eksplisit memilih untuk menggunakan perilaku default aplikasi di setelan rasio aspek perangkat
- Layar yang lebar terkecilnya lebih kecil dari
sw600dp