Aplikacje adaptacyjne obsługują wyświetlacze we wszystkich rozmiarach: cały ekran urządzenia, z możliwością zmiany rozmiaru okna w trybie wielu okien, w orientacji pionowej i poziomej, po złożeniu i rozłożonych wyświetlaczy urządzeń składanych.
Krótka lista ustawień konfiguracji i interfejsów API umożliwia tworzenie aplikacji. Jednak niektóre nieaktualne ustawienia i interfejsy API są niezgodne z aplikacjami adaptacyjnymi i należy ich unikać.
Możliwość zmiany rozmiaru
Aplikacje adaptacyjne obsługują możliwość zmiany rozmiaru aplikacji i tryb wielu okien.
Atrybut resizeableActivity
elementów <activity>
i
<application>
Elementy manifestu włącza lub wyłącza tryb wielu okien
w Androidzie 11 (poziom interfejsu API 30) i starszych. Na Androidzie 12 (poziom interfejsu API 31) i
wyższe, duże ekrany obsługują tryb wielu okien niezależnie
. Więcej informacji znajdziesz w artykule Obsługa trybu wielu okien.
Włącz w aplikacji możliwość udziału w trybach wielozadaniowości w trybie wielu okien dla: zwiększyć produktywność i zadowolenie użytkowników.
Ustaw resizeableActivity="true"
, jeśli aplikacja jest kierowana na poziomy interfejsu API niższe niż 24.
w przeciwnym razie – domyślnie jest to true
w Androidzie 7.0 (interfejs API
na poziomie 24) i wyższym.
Nie ustawiaj zasady resizeableActivity="false"
dla żadnego poziomu interfejsu API. Nie wykluczaj swojej aplikacji
z przypadków użycia trybu wielu okien.
Orientacja
Aplikacje adaptacyjne obsługują orientację pionową i poziomą niezależnie od wyświetlacza rozmiaru lub trybu okna.
Ustawienie pliku manifestu screenOrientation
ogranicza orientację aktywności.
Usuń ustawienie screenOrientation
z manifestu aplikacji.
Zablokowanie orientacji aplikacji nie zapobiega zmianom rozmiaru okna. Aplikacje są
zmienia się po przejściu w tryb wielu okien, gdy urządzenie jest złożone lub rozłożone,
lub gdy rozmiar dowolnego okna jest zmieniany. Aplikacja musi obsługiwać zmiany w oknie
rozmiaru niezależnie od ustawienia atrybutu screenOrientation
.
Nie ograniczaj orientacji aktywności. Aplikacje, które blokują orientację, mają poziome pasy na urządzeniach z dużymi ekranami i niezgodne rozmiary okien.
Aplikacje w formacie letterbox są rzadziej wykrywane w Google Play przez na tabletach, urządzeniach składanych i urządzeniach z ChromeOS.
Format obrazu
Ekrany i okna mają różne formaty obrazu – od wąskiego do kwadratowego, krótkiego i szerokiego.
Ustawienia pliku manifestu minAspectRatio
i maxAspectRatio
ograniczają
formatu obrazu do wartości
zakodowanych na stałe.
Dostosuj aplikację, aby pasowała do wyświetlacza niezależnie od jej wymiarów.
Usuń z aplikacji ustawienia minAspectRatio
i maxAspectRatio
pliku manifestu. Możesz też sprawdzić, czy można zmienić rozmiar aplikacji i zadbać o odpowiedni format obrazu
(zobacz sekcję Możliwość zmiany rozmiaru).
Nie próbuj kontrolować względnych wymiarów aplikacji. Jeśli Twoja aplikacja działa na na ekranie lub w oknie o współczynniku proporcji niezgodnym z obrazu aplikacji, aplikacja jest wyświetlana z czarnymi pasami.
Na Androidzie 14 (poziom interfejsu API 34) i nowszym użytkownicy mogą zastąpić współczynnik proporcji aplikacji które rozwijają aplikacje z czarnymi pasami i wypełniają cały dostępny obszar wyświetlania. Zobacz urządzenie trybu zgodności.
Rozmiar okna
Optymalizowanie układów pod kątem różnych rozmiarów wyświetlaczy to główna zasada adaptacyjną. Aplikacje adaptacyjne skupiają się na rozmiarze okna aplikacji, a nie na urządzeniu rozmiaru ekranu. Gdy aplikacja jest pełna, oknem aplikacji jest ekran urządzenia.
Klasy rozmiaru okna umożliwiają systematyczne określanie i kategoryzowanie rozmiaru okna aplikacji. Dostosuj aplikację, zmieniając układy jako okno klasa rozmiaru Twojej aplikacji.
Oceń rozmiar okna aplikacji na podstawie klas rozmiaru okna.
Aby określić klasę rozmiaru okna, użyj funkcji currentWindowAdaptiveInfo()
funkcji najwyższego poziomu w bibliotece adaptacyjnej Compose Material 3. Więcej
Więcej informacji znajdziesz w artykule o tworzeniu aplikacji adaptacyjnych.
Nie ignoruj przydatności definicji klas rozmiaru okna i z wbudowanymi interfejsami API. Nie używaj wycofanych interfejsów API do obliczania rozmiaru okna.
Wycofane interfejsy API
Starsze interfejsy API platform nie mierzą prawidłowo okna aplikacji. niektórzy mierzą ekranu urządzenia, niektóre nie są ozdobione elementami systemu.
Używaj WindowManager#getCurrentWindowMetrics()
oraz
WindowMetrics#getBounds()
, aby poznać rozmiar okna aplikacji. Używaj
WindowMetrics#getDensity()
, aby uzyskać gęstość wyświetlania.
Nie używaj tych wycofanych interfejsów API Display
do określania rozmiaru okna:
getSize()
: wycofane w Androidzie 11 (poziom interfejsu API 30)getMetrics()
: wycofane w Androidzie 11 (poziom interfejsu API 30)getRealSize()
: wycofane w Androidzie 12 (poziom interfejsu API 31)getRealMetrics()
: wycofane w Androidzie 12 (poziom interfejsu API 31)
Compose
Aplikacja Jetpack Compose została zaprojektowana z myślą o adaptacyjnym tworzeniu interfejsu użytkownika. Brak kodu XML, układu
bez kwalifikatorów zasobów. Tylko bezstanowe kompozycje oparte na Kotlin
np. Column
, Row
i Box
, które opisują Twój interfejs, oraz modyfikatory
np. offset
, padding
i size
, które zwiększają wygodę interfejsu.
.
Kompiluj za pomocą funkcji tworzenia wiadomości. Bądź na bieżąco z najnowszymi funkcjami i wersjami.
Nie korzystaj z przestarzałej technologii. Nie pozwól, by Twoja aplikacja stała się przestarzała.
Biblioteka adaptacyjna Compose Material 3
Biblioteka Compose Material 3 Adaptive zawiera komponenty i interfejsy API, ułatwiają tworzenie aplikacji adaptacyjnych.
Aby skonfigurować adaptacyjną aplikację, użyj tych interfejsów API:
NavigationSuiteScaffold
: umożliwia przełączanie się między paskiem nawigacyjnym a usługą w zależności od klasy rozmiaru okna aplikacji.ListDetailPaneScaffold
: implementuje układ kanoniczny szczegółów listy. Dostosowuje układ do rozmiaru okna aplikacji.SupportingPaneScaffold
: implementuje panel pomocniczy jako kanoniczny. układ.
Nie wymyślaj koła na nowo. Nie przegap możliwości zwiększenia produktywności programistów dostępne we wszystkich bibliotekach Jetpack Compose.
Układy
Użytkownicy oczekują, że aplikacje w pełni wykorzystają miejsce na ekranie za pomocą dodatkowych funkcji treści i udoskonalonych mechanizmów kontroli.
Aplikacje adaptacyjne optymalizują układy pod kątem zmian na wyświetlaczu, zmiany rozmiaru okna aplikacji lub stanu urządzenia.
Zmieniaj komponenty interfejsu wraz ze zmianą rozmiaru okna, aby korzystać z dostępnych do przestrzeni reklamowej. Możesz na przykład zamienić dolny pasek nawigacyjny na kompaktowy rozmiarów okien w pionowej kolumnie nawigacyjnej w średnich i rozwiniętych oknach. Zmień położenie okien, tak aby były dostępne na wszystkich ekranach.
Możesz porządkować treści w panele, aby korzystać z układów z kilkoma panelami, takich jak szczegóły listy i panel pomocniczy wyświetlania zawartości dynamicznej.
Jeśli nie używasz paneli treści, nie rozciągaj elementów interfejsu, aby wypełnić
dostępnej przestrzeni reklamowej. Długie wiersze tekstu są trudne do odczytania. Rozciągnięte
Przyciski wyglądają kiepsko. Jeśli używasz Modifier.fillMaxWidth
, nie
Zakładamy, że jest to prawidłowe działanie w przypadku wszystkich rozmiarów wyświetlaczy.
Urządzenia wejściowe
Użytkownicy nie tylko korzystają z aplikacji na ekranach dotykowych.
Aplikacje adaptacyjne obsługują zewnętrzne klawiatury, myszy i rysiki, aby zapewnić są wygodniejsze dla użytkowników i pomagają zwiększyć produktywność przy korzystaniu z różnych formatów wszelkiego rodzaju.
Korzystanie z wbudowanych funkcji platformy Androida do nawigacja po karcie klawiatury oraz klikanie, wybieranie i przewijanie myszą lub trackpadem. Opublikuj skróty klawiszowe aplikacji w Asystencie skrótów klawiszowych,
Użyj biblioteki Material 3 Jetpack, aby umożliwić użytkownikom pisanie w dowolnym
TextField
za pomocą rysika.
Nie uniemożliwiaj stosowania alternatywnych metod wprowadzania. Nie wprowadzaj ułatwień dostępu problemów.
Podsumowanie
- Utwórz aplikację za pomocą Compose i biblioteki Material 3 Adaptive
- Tworzenie układów na podstawie klas rozmiaru okna
- Tworzenie układów z wieloma panelami
- Włączanie zmiany rozmiaru aplikacji
- Nigdy nie blokuj orientacji aktywności
- Nie ograniczaj formatu obrazu
- Obsługa wprowadzania danych innego niż dotyk
- Unikaj wycofanych interfejsów API
✓Rób to, czego oczekują użytkownicy: optymalizować aplikacje pod kątem różnych urządzeń, z których użytkownicy korzystają na co dzień.
✗ Nie czekaj. Zacznij już dziś!