Aplikacje na Androida działają teraz na wielu różnych urządzeniach (takich jak telefony, tablety, urządzenia składane, komputery, samochody i telewizory) oraz w różnych trybach okien na dużych ekranach (takich jak tryb podzielonego ekranu i tryb okien na pulpicie). Deweloperzy powinni tworzyć aplikacje na Androida, które dostosowują się do dowolnego rozmiaru ekranu i okna, niezależnie od orientacji urządzenia. Paradygmaty takie jak ograniczenie orientacji i możliwości zmiany rozmiaru są zbyt restrykcyjne w dzisiejszym świecie wielu urządzeń.
Ignorowanie ograniczeń dotyczących orientacji, zmiany rozmiaru i współczynnika proporcji
W przypadku aplikacji kierowanych na Androida 17 lub nowszego ograniczenia dotyczące orientacji, możliwości zmiany rozmiaru i formatu obrazu nie obowiązują już na wyświetlaczach, których najmniejsza szerokość jest większa niż 600 dp. Aplikacje wypełniają całe okno wyświetlania, niezależnie od współczynnika proporcji czy preferowanej orientacji użytkownika, a pillarboxing nie jest używany.
Android 17 usuwa tymczasową opcję rezygnacji dla deweloperów z ograniczeń dotyczących orientacji i zmiany rozmiaru na urządzeniach z dużym ekranem, która była dostępna w Androidzie 16.
Ta zmiana wprowadza nowe standardowe działanie platformy. Android zmierza w kierunku modelu, w którym aplikacje powinny dostosowywać się do różnych orientacji, rozmiarów wyświetlacza i proporcji. Ograniczenia takie jak stała orientacja lub ograniczona możliwość zmiany rozmiaru utrudniają dostosowanie aplikacji. Dostosuj aplikację, aby zapewnić użytkownikom jak najlepsze wrażenia.
Możesz też przetestować to zachowanie, korzystając z platformy zgodności aplikacji i włączając flagę zgodności UNIVERSAL_RESIZABLE_BY_DEFAULT.
Typowe zmiany powodujące niezgodność
Ignorowanie ograniczeń dotyczących orientacji, możliwości zmiany rozmiaru i proporcji może mieć wpływ na interfejs aplikacji na niektórych urządzeniach, zwłaszcza na elementy zaprojektowane z myślą o małych układach zablokowanych w orientacji pionowej. Aplikacje mogą mieć na przykład problemy z rozciągniętymi układami oraz animacjami i komponentami poza ekranem. Wszelkie założenia dotyczące proporcji lub orientacji mogą powodować problemy wizualne w aplikacji. Dowiedz się więcej o tym, jak ich uniknąć i poprawić adaptacyjne działanie aplikacji.
Częstym problemem na urządzeniach składanych w orientacji poziomej lub w przypadku obliczania proporcji obrazu w scenariuszach takich jak wielookienkowość, okna na komputerze czy podłączone wyświetlacze jest rozciągnięty, obrócony lub przycięty podgląd z kamery. Ten problem często występuje na urządzeniach z dużym ekranem i urządzeniach składanych, ponieważ aplikacje zakładają stałe relacje między funkcjami aparatu (takimi jak format obrazu i orientacja czujnika) a funkcjami urządzenia (takimi jak orientacja urządzenia i orientacja naturalna). Dowiedz się więcej o zarządzaniu podglądem z kamery
Zezwolenie na obracanie urządzenia powoduje częstsze ponowne tworzenie aktywności, co może prowadzić do utraty stanu użytkownika, jeśli nie zostanie on odpowiednio zachowany. Dowiedz się, jak prawidłowo zapisywać stan interfejsu w artykule Zapisywanie stanów interfejsu.
Szczegóły implementacji
Na urządzeniach z dużym ekranem w trybie pełnoekranowym i wielookienkowym ignorowane są te atrybuty manifestu i interfejsy API środowiska wykonawczego:
screenOrientationresizableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
Te wartości w kolumnach screenOrientation, setRequestedOrientation() i getRequestedOrientation() są ignorowane:
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
W przypadku zmiany rozmiaru wyświetlacza elementy android:resizeableActivity="false",
android:minAspectRatio i android:maxAspectRatio nie mają żadnego wpływu.
Wyjątki
Ograniczenia dotyczące orientacji, możliwości zmiany rozmiaru i współczynnika proporcji w Androidzie 17 nie obowiązują w tych sytuacjach:
- Gry (na podstawie flagi
android:appCategory) - użytkownicy, którzy wyraźnie zgadzają się na domyślne działanie aplikacji w ustawieniach proporcji obrazu urządzenia;
- ekrany, których najmniejsza szerokość jest mniejsza niż
sw600dp,