Kanoniczne układy widżetów

Twórz skuteczne układy widżetów, zaczynając od określenia podstawowych treści. Układ określa, jak informacje i elementy interaktywne są uporządkowane w widżecie. Aby uprościć ten proces, Android oferuje kilka gotowych układów pasków narzędzi, tekstu, list i siatek.

Tekst

Układy tekstowe są idealne do wyświetlania zwięzłych informacji. Możesz opcjonalnie dodać obraz obok tekstu, aby zwiększyć atrakcyjność wizualną widżetu.

Tylko tekst

Idealne rozwiązanie w przypadku tytułów, aktualizacji stanu, krótkich opisów lub dowolnego scenariusza w którym pojedynczy wiersz tekstu skutecznie przekazuje wiadomość.

Tekst i obraz

Dodaj obraz, aby zwiększyć efekt wizualny. Więcej informacji znajdziesz w sekcji Punkty przerwania , gdzie dowiesz się, jak dostosować ten układ do różnych rozmiarów ekranu.

Paski narzędzi

Użyj układów pasków narzędzi, aby zapewnić użytkownikom szybki dostęp do często używanych zadań w aplikacji w elastycznym układzie, który dostosowuje się do rozmiarów widżetów.

Pasek narzędzi wyszukiwania

Układ paska narzędzi wyszukiwania został celowo zaprojektowany tak, aby skupić uwagę na wyszukiwaniu jako podstawowym działaniu na pasku narzędzi. Dodatkowe przydatne przyciski mogą zapewnić szybki dostęp do często używanych funkcji.

Pasek narzędzi

Paski narzędzi zawierają branding aplikacji, a następnie przyciski do najczęściej używanych zadań które są idealne do ustawień przełączanych lub linków do zadań. Podczas zmiany rozmiaru mniej popularne opcje można ukryć na rzecz częściej używanych działań. Użyj punktów przerwania , aby dodać nowy przycisk o minimalnym rozmiarze 48 dp, gdy jest na niego miejsce.

Listy

Użyj układów list, aby uporządkować wiele elementów w przejrzystym formacie, który można łatwo przejrzeć. Jest to idealne rozwiązanie w przypadku nagłówków wiadomości, list zadań do wykonania lub wiadomości. Uporządkuj treści w uporządkowaną listę, którą można łatwo przejrzeć. W zależności od potrzeb możesz wybrać prezentację w kontenerze lub bez kontenera.

Lista tekstu i obrazów

Listy tekstu i obrazów, które można łatwo przejrzeć, doskonale nadają się do prezentowania wielu typów treści, takich jak nagłówki wiadomości, playlisty z okładkami albumów czy wiadomości.

Lista kontrolna

Układ listy kontrolnej doskonale nadaje się do wyświetlania zadań, zapewniając użytkownikom wyraźne obszary kliknięcia dzięki którym mogą szybko oznaczać elementy jako wykonane.

Lista działań

Zapewnij intuicyjne grupowanie elementów sterujących za pomocą list działań, na których wizualne stany włączenia i wyłączenia natychmiast informują o stanie elementów.

Obraz na całą szerokość

Ten układ jest idealny do wyświetlania wciągających obrazów na całą szerokość ekranu w Androidzie 17 i nowszych wersjach. Używa on przewijania z przyciąganiem, aby każdy element podrzędny był idealnie dopasowany do wysokości kontenera widżetu.

Siatka

Prezentuj obrazy w kompaktowej, elastycznej i bogatej wizualnie siatce z opcjonalnymi etykietami. Użyj kolumn i wierszy, które dostosowują się do różnych rozmiarów ekranu.

Tylko obraz

Twórz atrakcyjne wizualnie galerie obrazów z możliwością przewijania za pomocą siatek zawierających tylko obrazy. Wiersze i kolumny automatycznie dostosowują się do różnych rozmiarów ekranu, aby zapewnić optymalną prezentację.

Obraz i tekst

Możesz też dodać etykiety tekstowe i opisy, aby wzbogacić zawartość siatki obrazów o dodatkowy kontekst i informacje.

Przykładowe fragmenty kodu

W tabeli poniżej znajdziesz mapowanie każdego kanonicznego układu na jego odpowiednią implementację Jetpack Glance w repozytorium Android Platform Samples na GitHubie.

Układ kanoniczny Pliki referencyjne Wskazówki
Układ listy działań
  • Obsługuj działania elementów listy za pomocą wywołań zwrotnych działań Glance i zapewnij prawidłowe aktualizacje stanu.
Układ listy kontrolnej
  • Zaimplementuj przełączanie stanu pola wyboru za pomocą parametrów działania lub wywołań zwrotnych, aby aktualizować elementy kolekcji.
  • Użyj wywołań zwrotnych działań Glance, takich jak `actionRunCallback`, `ActionCallback(actionParametersOf(...))` lub `actionStartActivity(...)`, w przypadku parametrów `onClick` widżetu, aby obsługiwać zdarzenia kliknięcia, takie jak kliknięcie pola wyboru.
Układ ekspresyjnego paska narzędzi
  • Aby uniknąć błędów importu `ColorProvider`, zaimportuj `androidx.glance.unit.ColorProvider` i użyj `androidx.glance.color.ColorProvider(dayColor, nightColor)`.
  • W przypadku jednolitych kolorów tła używaj bezpośrednio `GlanceModifier.background(Color)` zamiast `ColorProvider`.
Układ siatki obrazów
  • W przypadku elementów obrazu używaj jednolitych kolorów (`GlanceModifier.background`) lub lokalnych elementów rysowalnych, chyba że skonfigurowano lub zażądano biblioteki wczytywania obrazów.
Układ listy tekstu i obrazów
  • Typowe przypadki użycia: kanały informacyjne, listy artykułów, historia treningów, kanały wiadomości i pionowe listy miniatur.
  • Zrównoważ wysokość wiersza listy i przycinanie tekstu, gdy łączysz miniatury z tekstem podstawowym lub dodatkowym.
Układ długiego tekstu
  • Jeśli mnożysz wartości `Dp`, np. `2 * padding`, zaimportuj `androidx.compose.ui.unit.times`.
  • Przestrzegaj zasad dotyczących rozmiarów: upewnij się, że wymiary z pliku `dimens.xml` są używane do określania dopełnienia i skalowania typografii.
Układ paska narzędzi wyszukiwania
  • Aby uniknąć błędów importu `ColorProvider`, zaimportuj `androidx.glance.unit.ColorProvider` i użyj `androidx.glance.color.ColorProvider(dayColor, nightColor)`.
  • W przypadku jednolitych kolorów tła używaj bezpośrednio `GlanceModifier.background(Color)` zamiast `ColorProvider`.
Układ obrazu na całą szerokość / przewijanie z przyciąganiem
  • Aby włączyć przewijanie z przyciąganiem, ustaw `verticalScrollMode = VerticalScrollMode.SnapScrollMatchHeight(size.height)` w elemencie LazyColumn.
  • Jeśli implementujesz przewijanie z przyciąganiem, wymagane są Glance 1.3.0-alpha02 lub nowsza wersja, pakiet SDK 37 (Baklava) lub nowszy oraz wtyczka Androida do obsługi Gradle (AGP) 9.1.0 lub nowsza.
  • W klasie dostawcy widżetu ustaw `override val sizeMode: SizeMode = SizeMode.Exact`.
Standardowy układ paska narzędzi
  • Aby uniknąć błędów importu `ColorProvider`, zapoznaj się z sekcją Rozwiązywanie problemów i użyj `androidx.glance.color.ColorProvider(dayColor, nightColor)`.
  • W przypadku jednolitych kolorów tła używaj bezpośrednio `GlanceModifier.background(Color)` zamiast `ColorProvider`.
Układ tekstu z obrazem
  • Przestrzegaj zasad dotyczących rozmiarów elastycznego układu, aby tekst i obraz mogły być wyświetlane obok siebie lub w stosie w zależności od dostępnych wymiarów widżetu.