Obsługa okna pulpitu

Okna pulpitu umożliwiają użytkownikom jednoczesne uruchamianie wielu aplikacji z możliwością zmiany rozmiaru dzięki czemu możesz używać uniwersalnego rozwiązania, jak na komputerze.

Na ilustracji 1 widać organizację ekranu za pomocą okien pulpitu . Warto wiedzieć:

  • Użytkownicy mogą uruchamiać wiele aplikacji jednocześnie.
  • Pasek aplikacji jest umieszczony w stałym miejscu u dołu ekranu i wyświetla uruchomione aplikacje. Użytkownicy mogą przypinać aplikacje, aby mieć do nich szybki dostęp.
  • Nowy, dostosowywalny pasek nagłówka zdobi górną część każdego okna i zawiera elementy sterujące, takie jak minimalizowanie i maksymalizowanie.
Rysunek 1. Okno na komputerze na tablecie.

Domyślnie aplikacje otwierają się na pełnym ekranie na tabletach z Androidem. Aby uruchomić aplikację w oknie na komputerze, naciśnij i przytrzymaj uchwyt okna u góry ekranu, a następnie przeciągnij uchwyt w interfejsie, jak pokazano na rysunku 2.

Gdy aplikacja jest otwarta w oknie na pulpicie, inne aplikacje również otwierają się w oknach na pulpicie.

.
Rysunek 2. Naciśnij, przytrzymaj i przeciągnij uchwyt okna aplikacji, aby przejść do okna pulpitu.

Użytkownicy mogą też wywołać okno pulpitu z menu, które pojawia się pod uchwytem okna, gdy klikniesz lub dotkniesz uchwyt lub użyjesz skrótu klawiszowego klawisz Meta (Windows, Command lub Szukaj) + Ctrl + w dół.

Użytkownicy zamykają okna pulpitu, zamykając wszystkie aktywne okna lub pobierając uchwyt okna u góry okna pulpitu i przeciągnięcie aplikacji w górę do krawędzi ekranu. Skrót klawiszowy Meta + H również zamyka działanie. okna przeglądarki i ponowne uruchamianie aplikacji na pełnym ekranie.

Aby wrócić do okna na komputerze, na ekranie Ostatnie kliknij lub dotknij kafelka przestrzeni na komputerze.

Tryb zgodności i możliwości zmiany rozmiaru

W oknach na komputerze aplikacje z zablokowaną orientacją można dowolnie zmieniać rozmiar. Oznacza to, że nawet jeśli aktywność jest zablokowana w orientacji pionowej, użytkownicy mogą zmienić rozmiar aplikacji na orientację poziomą.

Rysunek 3. Zmiana rozmiaru okna aplikacji z ograniczeniem pionowym na poziomą.

Aplikacje o deklarowanej niemożności zmiany rozmiaru (czyli resizableActivity = false) mają interfejs użytkownika przeskalowany przy zachowaniu tego samego współczynnika proporcji.

.
Rysunek 4. Interfejs aplikacji bez możliwości zmiany rozmiaru skaluje się wraz ze zmianą rozmiaru okna.

Aplikacje aparatu, które blokują orientację lub są zadeklarowane jako niemożliwe do zmiany rozmiaru, mają specjalną obsługę wizjerów aparatu: możliwość pełnej zmiany rozmiaru okna, ale format obrazu zostaje zachowany. Zakładając, że aplikacje zawsze działają w orientacji pionowej lub poziomej, aplikacje zakodują na stałe lub w inny sposób założeniami, które powodują błędne obliczenia podglądu lub zrobionego zdjęcia orientacja lub format obrazu, dzięki czemu obrazy są rozciągnięte, obrócone na bok lub do góry nogami.

Dopóki aplikacje nie będą gotowe do implementacji w pełni elastycznych wizjerów aparatu, specjalne traktowanie zapewni użytkownikom bardziej podstawowe wrażenia, które ograniczy skutki błędnych założeń.

Więcej informacji o trybie zgodności aplikacji aparatu znajdziesz w artykule Tryb zgodności urządzenia.

Rysunek 5. Wizjer aparatu zachowuje format obrazu podczas zmiany rozmiaru okna.

Niestandardowe wstawki nagłówka

Wszystkie aplikacje działające w oknie na komputerze mają pasek nagłówka, nawet w trybie pełnoekranowym.
Upewnij się, że pasek nagłówka nie zasłania treści aplikacji. Pasek nagłówka to wbudowany pasek podpisu: androidx.compose.foundation.layout.WindowInsets.Companion.captionBar(); w widokach WindowInsets.Type.captionBar(), który jest częścią pasków systemowych.

Więcej informacji o obsłudze wektorów znajdziesz w artykule Wyświetlanie treści od krawędzi do krawędzi w aplikacji i obsługa wstawionych okien w narzędziu Compose.

Pasek nagłówka również można dostosowywać. W Androidzie 15 wprowadzono typ wyglądu APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND, aby umożliwić aplikacjom wyświetlanie niestandardowych treści w pasku nagłówka.

Aplikacje są odpowiedzialne za stylizowanie górnej części treści tak, aby wyglądają jak pasek napisów (tło, treść niestandardowa itd.) z z wyjątkiem elementów napisów systemowych (przycisków zamykania i maksymalizacji), które są który system wyświetla na przezroczystym pasku napisów u góry aplikacji.

Aplikacje mogą przełączać wygląd elementów systemu w tytule w jasnym i ciemnym motywie za pomocą APPEARANCE_LIGHT_CAPTION_BARS, podobnie jak w przypadku paska stanu i paska nawigacyjnego.

W Androidzie 15 wprowadziliśmy też WindowInsets#getBoundingRects() która pozwala aplikacjom bardziej szczegółowo analizować wstawki pasków z napisami. Aplikacje mogą rozróżniać obszary, na których system wyświetla elementy systemowe, oraz obszary niewykorzystane, na których aplikacje mogą umieszczać treści niestandardowe bez nakładania się na elementy systemowe.

Lista obiektów Rect zwracanych przez interfejs API wskazuje regiony systemu, których należy unikać. Pozostała przestrzeń (obliczana przez odjęcie prostokątów) (na pasku napisów) to miejsce, w którym aplikacja może rysować bez które nakładają się na elementy systemu i mogą otrzymywać dane wejściowe.

Chrome przed wdrożeniem niestandardowych nagłówków i po nim.
Rysunek 6. Chrome przed wdrożeniem niestandardowych nagłówków i po nim.
.

Wielozadaniowość i obsługa wielu instancji

Wielozadaniowość jest podstawą tworzenia okien na komputerach. Pozwala to instancji aplikacji może znacznie zwiększyć produktywność użytkowników.

Android 15 wprowadza parametr PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI, który pozwala aplikacjom określić, że interfejs użytkownika systemu powinien być wyświetlany, aby umożliwić uruchamianie aplikacji w wielu instancjach.

Zarządzanie instancjami aplikacji za pomocą gestów przeciągania

W trybie wielu okien użytkownicy mogą uruchomić nowe wystąpienie aplikacji, przeciągając widok. element poza oknem aplikacji. Użytkownicy mogą też przenosić elementy między instancjami tej samej aplikacji.

.
Rysunek 7. Uruchom nowe wystąpienie Chrome, przeciągając kartę poza okno pulpitu.

W Androidzie 15 wprowadziliśmy 2 flagi umożliwiające dostosowanie działania funkcji przeciągania i upuszczania:

  • DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG: Wskazuje, że aby rozpocząć, trzeba przekazać do systemu nieobsłużone przeciąganie jeśli żadne widoczne okno nie obsługuje listy. Podczas używania tej flagi wywołujący musi przekazać ClipDataItem, który zawiera niezmienną IntentSender do aktywności do uruchomienia (patrz ClipData.Item.Builder#setIntentSender()). System może uruchomić lub nie uruchomić zamiaru na podstawie czynników takich jak bieżący rozmiar ekranu lub tryb okna. Jeśli system nie uruchomi intencji, zostanie ona anulowana za pomocą zwykłego procesu przeciągania i upuszczania.

  • DRAG_FLAG_GLOBAL_SAME_APPLICATION: Wskazuje, że operacja przeciągania może przekraczać granice okien (w przypadku wielu instancji tej samej aplikacji).

    Gdy wywołana zostanie funkcja startDragAndDrop() z ustawionym tym flagiem, tylko widoczne okna należące do tej samej aplikacji mogą uczestniczyć w operacji przeciągania i odbierać przeciągane treści.

.
Rysunek 8. Przenoszenie karty między 2 kopiami aplikacji Chrome.

Dodatkowe optymalizacje

Dostosuj uruchamianie aplikacji i przeprowadzaj aplikacje z okna na komputery na pełny ekran.

Określ domyślny rozmiar i położenie

Nie wszystkie aplikacje (nawet z możliwością zmiany rozmiaru) muszą mieć duże okno, aby zaoferować użytkownikowi wartość. Aby określić domyślny rozmiar i pozycję podczas uruchamiania aktywności, możesz użyć metody ActivityOptions#setLaunchBounds().

Włączanie trybu pełnoekranowego na pulpicie

Aplikacje mogą przejść do trybu pełnoekranowego za pomocą wywołania Activity#requestFullScreenMode(). Metoda włącza tryb pełnoekranowy bezpośrednio w oknie pulpitu.