Ograniczenia dotyczące orientacji i możliwości zmiany rozmiaru są ignorowane.

Aplikacje na Androida działają teraz na różnych urządzeniach (takich jak telefony, tablety, urządzenia składane, komputery stacjonarne, 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, możliwości zmiany rozmiaru i formatu obrazu

W przypadku aplikacji kierowanych na Androida 17 (API na poziomie 37) 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świetlacza, niezależnie od formatu obrazu i preferowanej orientacji użytkownika, a pillarboxing nie jest używany.

Android 17 usuwa tymczasową możliwość rezygnacji przez dewelopera z ograniczeń dotyczących orientacji i możliwości zmiany rozmiaru na urządzeniach z dużym ekranem która została wprowadzona w Androidzie 16.

Ta zmiana wprowadza nowe standardowe działanie platformy. Android zmierza w kierunku modelu, w którym aplikacje mają dostosowywać się do różnych orientacji, rozmiarów wyświetlacza i formatów obrazu. 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 działanie, korzystając z systemu sprawdzania 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 formatu obrazu może mieć wpływ na interfejs aplikacji na niektórych urządzeniach, zwłaszcza na elementy zaprojektowane pod kątem małych układów zablokowanych w orientacji pionowej. Aplikacje mogą na przykład mieć problemy z rozciągniętymi układami oraz animacjami i komponentami poza ekranem. Wszelkie założenia dotyczące formatu obrazu lub orientacji mogą powodować problemy wizualne w aplikacji. Dowiedz się więcej o tym, jak unikać tych problemów i poprawić adaptacyjne działanie aplikacji.

Częstym problemem na urządzeniach składanych w orientacji poziomej lub w przypadku obliczeń formatu obrazu w scenariuszach takich jak tryb wielu okien, tryb okien na pulpicie lub podłączone wyświetlacze jest to, że podgląd z kamery jest rozciągnięty, obrócony lub przycięty. 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 prawidłowo zachowany. Dowiedz się, jak prawidłowo zapisywać stan interfejsu w sekcji Zapisywanie stanów interfejsu.

Szczegóły implementacji

Na urządzeniach z dużym ekranem w trybie pełnoekranowym i trybie wielu okien ignorowane są te atrybuty manifestu i interfejsy API środowiska wykonawczego:

Ignorowane są te wartości screenOrientation, setRequestedOrientation() i getRequestedOrientation():

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

W przypadku możliwości zmiany rozmiaru wyświetlacza 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 formatu obrazu w Androidzie 17 nie obowiązują w tych sytuacjach:

  • Gry (na podstawie flagi android:appCategory)
  • Użytkownicy, którzy wyraźnie zgodzili się na domyślne działanie aplikacji w ustawieniach formatu obrazu urządzenia
  • Ekrany, których najmniejsza szerokość jest mniejsza niż sw600dp